dmime: Include dmobject.h in dmime_private.h.
[wine.git] / dlls / wow64 / struct32.h
blob92cd3d6e37e973f1732eeef333aa185d3e4ca17f
1 /*
2 * 32-bit version of ntdll structures
4 * Copyright 2021 Alexandre Julliard
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
21 #ifndef __WOW64_STRUCT32_H
22 #define __WOW64_STRUCT32_H
24 typedef struct
26 ULONG Length;
27 ULONG RootDirectory;
28 ULONG ObjectName;
29 ULONG Attributes;
30 ULONG SecurityDescriptor;
31 ULONG SecurityQualityOfService;
32 } OBJECT_ATTRIBUTES32;
34 typedef struct
36 union
38 NTSTATUS Status;
39 ULONG Pointer;
41 ULONG Information;
42 } IO_STATUS_BLOCK32;
44 typedef struct
46 UNICODE_STRING32 Name;
47 } OBJECT_NAME_INFORMATION32;
49 typedef struct
51 UNICODE_STRING32 TypeName;
52 ULONG TotalNumberOfObjects;
53 ULONG TotalNumberOfHandles;
54 ULONG TotalPagedPoolUsage;
55 ULONG TotalNonPagedPoolUsage;
56 ULONG TotalNamePoolUsage;
57 ULONG TotalHandleTableUsage;
58 ULONG HighWaterNumberOfObjects;
59 ULONG HighWaterNumberOfHandles;
60 ULONG HighWaterPagedPoolUsage;
61 ULONG HighWaterNonPagedPoolUsage;
62 ULONG HighWaterNamePoolUsage;
63 ULONG HighWaterHandleTableUsage;
64 ULONG InvalidAttributes;
65 GENERIC_MAPPING GenericMapping;
66 ULONG ValidAccessMask;
67 BOOLEAN SecurityRequired;
68 BOOLEAN MaintainHandleCount;
69 UCHAR TypeIndex;
70 CHAR ReservedByte;
71 ULONG PoolType;
72 ULONG DefaultPagedPoolCharge;
73 ULONG DefaultNonPagedPoolCharge;
74 } OBJECT_TYPE_INFORMATION32;
76 typedef struct
78 UNICODE_STRING32 ObjectName;
79 UNICODE_STRING32 ObjectTypeName;
80 } DIRECTORY_BASIC_INFORMATION32;
82 typedef struct
84 ULONG CompletionPort;
85 ULONG CompletionKey;
86 } FILE_COMPLETION_INFORMATION32;
88 typedef struct
90 ULONG CompletionKey;
91 ULONG CompletionValue;
92 IO_STATUS_BLOCK32 IoStatusBlock;
93 } FILE_IO_COMPLETION_INFORMATION32;
95 typedef struct
97 union
99 BOOLEAN ReplaceIfExists;
100 ULONG Flags;
102 ULONG RootDirectory;
103 ULONG FileNameLength;
104 WCHAR FileName[1];
105 } FILE_RENAME_INFORMATION32;
107 typedef struct
109 ULONG Mask;
110 WORD Group;
111 WORD Reserved[3];
112 } GROUP_AFFINITY32;
114 typedef struct
116 DWORD NumberOfAssignedProcesses;
117 DWORD NumberOfProcessIdsInList;
118 ULONG ProcessIdList[1];
119 } JOBOBJECT_BASIC_PROCESS_ID_LIST32;
121 typedef struct
123 LARGE_INTEGER PerProcessUserTimeLimit;
124 LARGE_INTEGER PerJobUserTimeLimit;
125 DWORD LimitFlags;
126 ULONG MinimumWorkingSetSize;
127 ULONG MaximumWorkingSetSize;
128 DWORD ActiveProcessLimit;
129 ULONG Affinity;
130 DWORD PriorityClass;
131 DWORD SchedulingClass;
132 } JOBOBJECT_BASIC_LIMIT_INFORMATION32;
134 typedef struct
136 JOBOBJECT_BASIC_LIMIT_INFORMATION32 BasicLimitInformation;
137 IO_COUNTERS IoInfo;
138 ULONG ProcessMemoryLimit;
139 ULONG JobMemoryLimit;
140 ULONG PeakProcessMemoryUsed;
141 ULONG PeakJobMemoryUsed;
142 } JOBOBJECT_EXTENDED_LIMIT_INFORMATION32;
144 typedef struct
146 ULONG CompletionKey;
147 LONG CompletionPort;
148 } JOBOBJECT_ASSOCIATE_COMPLETION_PORT32;
150 typedef struct
152 ULONG BaseAddress;
153 ULONG AllocationBase;
154 DWORD AllocationProtect;
155 ULONG RegionSize;
156 DWORD State;
157 DWORD Protect;
158 DWORD Type;
159 } MEMORY_BASIC_INFORMATION32;
161 typedef struct
163 ULONG AllocationBase;
164 ULONG AllocationProtect;
165 ULONG RegionType;
166 ULONG RegionSize;
167 ULONG CommitSize;
168 ULONG PartitionId;
169 ULONG NodePreference;
170 } MEMORY_REGION_INFORMATION32;
172 typedef struct
174 UNICODE_STRING32 SectionFileName;
175 } MEMORY_SECTION_NAME32;
177 typedef union
179 ULONG Flags;
180 struct {
181 ULONG Valid : 1;
182 ULONG ShareCount : 3;
183 ULONG Win32Protection : 11;
184 ULONG Shared : 1;
185 ULONG Node : 6;
186 ULONG Locked : 1;
187 ULONG LargePage : 1;
189 } MEMORY_WORKING_SET_EX_BLOCK32;
191 typedef struct
193 ULONG VirtualAddress;
194 MEMORY_WORKING_SET_EX_BLOCK32 VirtualAttributes;
195 } MEMORY_WORKING_SET_EX_INFORMATION32;
197 typedef struct
199 ULONG ImageBase;
200 ULONG SizeOfImage;
201 union
203 ULONG ImageFlags;
204 struct
206 ULONG ImagePartialMap : 1;
207 ULONG ImageNotExecutable : 1;
208 ULONG ImageSigningLevel : 4;
209 ULONG Reserved : 26;
212 } MEMORY_IMAGE_INFORMATION32;
214 typedef struct
216 NTSTATUS ExitStatus;
217 ULONG PebBaseAddress;
218 ULONG AffinityMask;
219 LONG BasePriority;
220 ULONG UniqueProcessId;
221 ULONG InheritedFromUniqueProcessId;
222 } PROCESS_BASIC_INFORMATION32;
224 typedef struct
226 ULONG Version;
227 ULONG Reserved;
228 ULONG Callback;
229 } PROCESS_INSTRUMENTATION_CALLBACK_INFORMATION32;
231 typedef struct
233 ULONG ReserveSize;
234 ULONG ZeroBits;
235 ULONG StackBase;
236 } PROCESS_STACK_ALLOCATION_INFORMATION32;
238 typedef struct
240 ULONG PreferredNode;
241 ULONG Reserved0;
242 ULONG Reserved1;
243 ULONG Reserved2;
244 PROCESS_STACK_ALLOCATION_INFORMATION32 AllocInfo;
245 } PROCESS_STACK_ALLOCATION_INFORMATION_EX32;
247 typedef struct
249 ULONG Size;
250 PS_CREATE_STATE State;
251 union
253 struct
255 ULONG InitFlags;
256 ACCESS_MASK AdditionalFileAccess;
257 } InitState;
258 struct
260 ULONG FileHandle;
261 } FailSection;
262 struct
264 USHORT DllCharacteristics;
265 } ExeFormat;
266 struct
268 ULONG IFEOKey;
269 } ExeName;
270 struct
272 ULONG OutputFlags;
273 ULONG FileHandle;
274 ULONG SectionHandle;
275 ULONGLONG UserProcessParametersNative;
276 ULONG UserProcessParametersWow64;
277 ULONG CurrentParameterFlags;
278 ULONGLONG PebAddressNative;
279 ULONG PebAddressWow64;
280 ULONGLONG ManifestAddress;
281 ULONG ManifestSize;
282 } SuccessState;
284 } PS_CREATE_INFO32;
286 typedef struct
288 ULONG Attribute;
289 ULONG Size;
290 ULONG Value;
291 ULONG ReturnLength;
292 } PS_ATTRIBUTE32;
294 typedef struct
296 ULONG TotalLength;
297 PS_ATTRIBUTE32 Attributes[1];
298 } PS_ATTRIBUTE_LIST32;
300 typedef struct
302 ULONG Section;
303 ULONG MappedBaseAddress;
304 ULONG ImageBaseAddress;
305 ULONG ImageSize;
306 ULONG Flags;
307 USHORT LoadOrderIndex;
308 USHORT InitOrderIndex;
309 USHORT LoadCount;
310 USHORT NameOffset;
311 BYTE Name[MAXIMUM_FILENAME_LENGTH];
312 } RTL_PROCESS_MODULE_INFORMATION32;
314 typedef struct
316 ULONG ModulesCount;
317 RTL_PROCESS_MODULE_INFORMATION32 Modules[1];
318 } RTL_PROCESS_MODULES32;
320 typedef struct
322 USHORT NextOffset;
323 RTL_PROCESS_MODULE_INFORMATION32 BaseInfo;
324 ULONG ImageCheckSum;
325 ULONG TimeDateStamp;
326 ULONG DefaultBase;
327 } RTL_PROCESS_MODULE_INFORMATION_EX32;
329 typedef struct
331 ULONG BaseAddress;
332 ULONG Attributes;
333 LARGE_INTEGER Size;
334 } SECTION_BASIC_INFORMATION32;
336 typedef struct
338 ULONG TransferAddress;
339 ULONG ZeroBits;
340 ULONG MaximumStackSize;
341 ULONG CommittedStackSize;
342 ULONG SubSystemType;
343 USHORT MinorSubsystemVersion;
344 USHORT MajorSubsystemVersion;
345 USHORT MajorOperatingSystemVersion;
346 USHORT MinorOperatingSystemVersion;
347 USHORT ImageCharacteristics;
348 USHORT DllCharacteristics;
349 USHORT Machine;
350 BOOLEAN ImageContainsCode;
351 UCHAR ImageFlags;
352 ULONG LoaderFlags;
353 ULONG ImageFileSize;
354 ULONG CheckSum;
355 } SECTION_IMAGE_INFORMATION32;
357 typedef struct
359 ULONG Sid;
360 DWORD Attributes;
361 } SID_AND_ATTRIBUTES32;
363 typedef struct
365 ULONG DefaultDacl;
366 } TOKEN_DEFAULT_DACL32;
368 typedef struct
370 DWORD GroupCount;
371 SID_AND_ATTRIBUTES32 Groups[1];
372 } TOKEN_GROUPS32;
374 typedef struct
376 ULONG Owner;
377 } TOKEN_OWNER32;
379 typedef struct
381 ULONG PrimaryGroup;
382 } TOKEN_PRIMARY_GROUP32;
384 typedef struct
386 SID_AND_ATTRIBUTES32 User;
387 } TOKEN_USER32;
389 typedef struct
391 NTSTATUS ExitStatus;
392 ULONG TebBaseAddress;
393 CLIENT_ID32 ClientId;
394 ULONG AffinityMask;
395 LONG Priority;
396 LONG BasePriority;
397 } THREAD_BASIC_INFORMATION32;
399 typedef struct
401 UNICODE_STRING32 ThreadName;
402 } THREAD_NAME_INFORMATION32;
404 typedef struct
406 ULONG PeakVirtualSize;
407 ULONG VirtualSize;
408 ULONG PageFaultCount;
409 ULONG PeakWorkingSetSize;
410 ULONG WorkingSetSize;
411 ULONG QuotaPeakPagedPoolUsage;
412 ULONG QuotaPagedPoolUsage;
413 ULONG QuotaPeakNonPagedPoolUsage;
414 ULONG QuotaNonPagedPoolUsage;
415 ULONG PagefileUsage;
416 ULONG PeakPagefileUsage;
417 } VM_COUNTERS32;
419 typedef struct
421 ULONG PeakVirtualSize;
422 ULONG VirtualSize;
423 ULONG PageFaultCount;
424 ULONG PeakWorkingSetSize;
425 ULONG WorkingSetSize;
426 ULONG QuotaPeakPagedPoolUsage;
427 ULONG QuotaPagedPoolUsage;
428 ULONG QuotaPeakNonPagedPoolUsage;
429 ULONG QuotaNonPagedPoolUsage;
430 ULONG PagefileUsage;
431 ULONG PeakPagefileUsage;
432 ULONG PrivateUsage;
433 } VM_COUNTERS_EX32;
435 typedef struct
437 DBG_STATE NewState;
438 CLIENT_ID32 AppClientId;
439 union
441 struct
443 EXCEPTION_RECORD32 ExceptionRecord;
444 ULONG FirstChance;
445 } Exception;
446 struct
448 ULONG HandleToThread;
449 struct
451 ULONG SubSystemKey;
452 ULONG StartAddress;
453 } NewThread;
454 } CreateThread;
455 struct
457 ULONG HandleToProcess;
458 ULONG HandleToThread;
459 struct
461 ULONG SubSystemKey;
462 ULONG FileHandle;
463 ULONG BaseOfImage;
464 ULONG DebugInfoFileOffset;
465 ULONG DebugInfoSize;
466 struct
468 ULONG SubSystemKey;
469 ULONG StartAddress;
470 } InitialThread;
471 } NewProcess;
472 } CreateProcessInfo;
473 struct
475 NTSTATUS ExitStatus;
476 } ExitProcess, ExitThread;
477 struct
479 ULONG FileHandle;
480 ULONG BaseOfDll;
481 ULONG DebugInfoFileOffset;
482 ULONG DebugInfoSize;
483 ULONG NamePointer;
484 } LoadDll;
485 struct
487 ULONG BaseAddress;
488 } UnloadDll;
489 } StateInfo;
490 } DBGUI_WAIT_STATE_CHANGE32;
492 typedef struct
494 ULONG unknown;
495 ULONG KeMaximumIncrement;
496 ULONG PageSize;
497 ULONG MmNumberOfPhysicalPages;
498 ULONG MmLowestPhysicalPage;
499 ULONG MmHighestPhysicalPage;
500 ULONG AllocationGranularity;
501 ULONG LowestUserAddress;
502 ULONG HighestUserAddress;
503 ULONG ActiveProcessorsAffinityMask;
504 BYTE NumberOfProcessors;
505 } SYSTEM_BASIC_INFORMATION32;
507 typedef struct
509 ULONG CurrentSize;
510 ULONG PeakSize;
511 ULONG PageFaultCount;
512 ULONG MinimumWorkingSet;
513 ULONG MaximumWorkingSet;
514 ULONG CurrentSizeIncludingTransitionInPages;
515 ULONG PeakSizeIncludingTransitionInPages;
516 ULONG TransitionRePurposeCount;
517 ULONG Flags;
518 } SYSTEM_CACHE_INFORMATION32;
520 typedef struct
522 ULONG OwnerPid;
523 BYTE ObjectType;
524 BYTE HandleFlags;
525 USHORT HandleValue;
526 ULONG ObjectPointer;
527 ULONG AccessMask;
528 } SYSTEM_HANDLE_ENTRY32;
530 typedef struct
532 ULONG Count;
533 SYSTEM_HANDLE_ENTRY32 Handle[1];
534 } SYSTEM_HANDLE_INFORMATION32;
536 typedef struct
538 ULONG RegistryQuotaAllowed;
539 ULONG RegistryQuotaUsed;
540 ULONG Reserved1;
541 } SYSTEM_REGISTRY_QUOTA_INFORMATION32;
543 typedef struct
545 ULONG Object;
546 ULONG UniqueProcessId;
547 ULONG HandleValue;
548 ULONG GrantedAccess;
549 USHORT CreatorBackTraceIndex;
550 USHORT ObjectTypeIndex;
551 ULONG HandleAttributes;
552 ULONG Reserved;
553 } SYSTEM_HANDLE_TABLE_ENTRY_INFO_EX32;
555 typedef struct
557 ULONG NumberOfHandles;
558 ULONG Reserved;
559 SYSTEM_HANDLE_TABLE_ENTRY_INFO_EX32 Handles[1];
560 } SYSTEM_HANDLE_INFORMATION_EX32;
562 typedef struct
564 ULONG ProcessorMask;
565 LOGICAL_PROCESSOR_RELATIONSHIP Relationship;
566 union
568 struct
570 BYTE Flags;
571 } ProcessorCore;
572 struct
574 DWORD NodeNumber;
575 } NumaNode;
576 CACHE_DESCRIPTOR Cache;
577 ULONGLONG Reserved[2];
579 } SYSTEM_LOGICAL_PROCESSOR_INFORMATION32;
581 typedef struct
583 BYTE Flags;
584 BYTE EfficiencyClass;
585 BYTE Reserved[20];
586 WORD GroupCount;
587 GROUP_AFFINITY32 GroupMask[ANYSIZE_ARRAY];
588 } PROCESSOR_RELATIONSHIP32;
590 typedef struct
592 DWORD NodeNumber;
593 BYTE Reserved[20];
594 GROUP_AFFINITY32 GroupMask;
595 } NUMA_NODE_RELATIONSHIP32;
597 typedef struct
599 BYTE Level;
600 BYTE Associativity;
601 WORD LineSize;
602 DWORD CacheSize;
603 PROCESSOR_CACHE_TYPE Type;
604 BYTE Reserved[20];
605 GROUP_AFFINITY32 GroupMask;
606 } CACHE_RELATIONSHIP32;
608 typedef struct
610 BYTE MaximumProcessorCount;
611 BYTE ActiveProcessorCount;
612 BYTE Reserved[38];
613 ULONG ActiveProcessorMask;
614 } PROCESSOR_GROUP_INFO32;
616 typedef struct
618 WORD MaximumGroupCount;
619 WORD ActiveGroupCount;
620 BYTE Reserved[20];
621 PROCESSOR_GROUP_INFO32 GroupInfo[ANYSIZE_ARRAY];
622 } GROUP_RELATIONSHIP32;
624 typedef struct
626 LOGICAL_PROCESSOR_RELATIONSHIP Relationship;
627 DWORD Size;
628 union
630 PROCESSOR_RELATIONSHIP32 Processor;
631 NUMA_NODE_RELATIONSHIP32 NumaNode;
632 CACHE_RELATIONSHIP32 Cache;
633 GROUP_RELATIONSHIP32 Group;
635 } SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX32;
637 typedef struct
639 LARGE_INTEGER KernelTime;
640 LARGE_INTEGER UserTime;
641 LARGE_INTEGER CreateTime;
642 DWORD dwTickCount;
643 ULONG StartAddress;
644 CLIENT_ID32 ClientId;
645 DWORD dwCurrentPriority;
646 DWORD dwBasePriority;
647 DWORD dwContextSwitches;
648 DWORD dwThreadState;
649 DWORD dwWaitReason;
650 DWORD dwUnknown;
651 } SYSTEM_THREAD_INFORMATION32;
653 typedef struct
655 ULONG NextEntryOffset;
656 DWORD dwThreadCount;
657 LARGE_INTEGER WorkingSetPrivateSize;
658 ULONG HardFaultCount;
659 ULONG NumberOfThreadsHighWatermark;
660 ULONGLONG CycleTime;
661 LARGE_INTEGER CreationTime;
662 LARGE_INTEGER UserTime;
663 LARGE_INTEGER KernelTime;
664 UNICODE_STRING32 ProcessName;
665 DWORD dwBasePriority;
666 ULONG UniqueProcessId;
667 ULONG ParentProcessId;
668 ULONG HandleCount;
669 ULONG SessionId;
670 ULONG UniqueProcessKey;
671 VM_COUNTERS_EX32 vmCounters;
672 IO_COUNTERS ioCounters;
673 SYSTEM_THREAD_INFORMATION32 ti[1];
674 } SYSTEM_PROCESS_INFORMATION32;
676 typedef struct
678 SYSTEM_THREAD_INFORMATION32 ThreadInfo;
679 ULONG StackBase;
680 ULONG StackLimit;
681 ULONG Win32StartAddress;
682 ULONG TebBase;
683 ULONG Reserved2;
684 ULONG Reserved3;
685 ULONG Reserved4;
686 } SYSTEM_EXTENDED_THREAD_INFORMATION32;
688 typedef struct
690 ULONG VirtualAddress;
691 ULONG NumberOfBytes;
692 } MEMORY_RANGE_ENTRY32;
694 typedef struct
696 ULONG LowestStartingAddress;
697 ULONG HighestEndingAddress;
698 ULONG Alignment;
699 } MEM_ADDRESS_REQUIREMENTS32;
701 typedef struct DECLSPEC_ALIGN(8)
703 struct
705 DWORD64 Type : MEM_EXTENDED_PARAMETER_TYPE_BITS;
706 DWORD64 Reserved : 64 - MEM_EXTENDED_PARAMETER_TYPE_BITS;
708 union
710 DWORD64 ULong64;
711 ULONG Pointer;
712 ULONG Size;
713 ULONG Handle;
714 ULONG ULong;
716 } MEM_EXTENDED_PARAMETER32;
718 #endif /* __WOW64_STRUCT32_H */