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
30 ULONG SecurityDescriptor
;
31 ULONG SecurityQualityOfService
;
32 } OBJECT_ATTRIBUTES32
;
46 UNICODE_STRING32 Name
;
47 } OBJECT_NAME_INFORMATION32
;
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
;
72 ULONG DefaultPagedPoolCharge
;
73 ULONG DefaultNonPagedPoolCharge
;
74 } OBJECT_TYPE_INFORMATION32
;
78 UNICODE_STRING32 ObjectName
;
79 UNICODE_STRING32 ObjectTypeName
;
80 } DIRECTORY_BASIC_INFORMATION32
;
86 } FILE_COMPLETION_INFORMATION32
;
91 ULONG CompletionValue
;
92 IO_STATUS_BLOCK32 IoStatusBlock
;
93 } FILE_IO_COMPLETION_INFORMATION32
;
99 BOOLEAN ReplaceIfExists
;
103 ULONG FileNameLength
;
105 } FILE_RENAME_INFORMATION32
;
116 DWORD NumberOfAssignedProcesses
;
117 DWORD NumberOfProcessIdsInList
;
118 ULONG ProcessIdList
[1];
119 } JOBOBJECT_BASIC_PROCESS_ID_LIST32
;
123 LARGE_INTEGER PerProcessUserTimeLimit
;
124 LARGE_INTEGER PerJobUserTimeLimit
;
126 ULONG MinimumWorkingSetSize
;
127 ULONG MaximumWorkingSetSize
;
128 DWORD ActiveProcessLimit
;
131 DWORD SchedulingClass
;
132 } JOBOBJECT_BASIC_LIMIT_INFORMATION32
;
136 JOBOBJECT_BASIC_LIMIT_INFORMATION32 BasicLimitInformation
;
138 ULONG ProcessMemoryLimit
;
139 ULONG JobMemoryLimit
;
140 ULONG PeakProcessMemoryUsed
;
141 ULONG PeakJobMemoryUsed
;
142 } JOBOBJECT_EXTENDED_LIMIT_INFORMATION32
;
148 } JOBOBJECT_ASSOCIATE_COMPLETION_PORT32
;
153 ULONG AllocationBase
;
154 DWORD AllocationProtect
;
159 } MEMORY_BASIC_INFORMATION32
;
163 ULONG AllocationBase
;
164 ULONG AllocationProtect
;
169 ULONG NodePreference
;
170 } MEMORY_REGION_INFORMATION32
;
174 UNICODE_STRING32 SectionFileName
;
175 } MEMORY_SECTION_NAME32
;
182 ULONG ShareCount
: 3;
183 ULONG Win32Protection
: 11;
189 } MEMORY_WORKING_SET_EX_BLOCK32
;
193 ULONG VirtualAddress
;
194 MEMORY_WORKING_SET_EX_BLOCK32 VirtualAttributes
;
195 } MEMORY_WORKING_SET_EX_INFORMATION32
;
206 ULONG ImagePartialMap
: 1;
207 ULONG ImageNotExecutable
: 1;
208 ULONG ImageSigningLevel
: 4;
212 } MEMORY_IMAGE_INFORMATION32
;
217 ULONG PebBaseAddress
;
220 ULONG UniqueProcessId
;
221 ULONG InheritedFromUniqueProcessId
;
222 } PROCESS_BASIC_INFORMATION32
;
229 } PROCESS_INSTRUMENTATION_CALLBACK_INFORMATION32
;
236 } PROCESS_STACK_ALLOCATION_INFORMATION32
;
244 PROCESS_STACK_ALLOCATION_INFORMATION32 AllocInfo
;
245 } PROCESS_STACK_ALLOCATION_INFORMATION_EX32
;
250 PS_CREATE_STATE State
;
256 ACCESS_MASK AdditionalFileAccess
;
264 USHORT DllCharacteristics
;
275 ULONGLONG UserProcessParametersNative
;
276 ULONG UserProcessParametersWow64
;
277 ULONG CurrentParameterFlags
;
278 ULONGLONG PebAddressNative
;
279 ULONG PebAddressWow64
;
280 ULONGLONG ManifestAddress
;
297 PS_ATTRIBUTE32 Attributes
[1];
298 } PS_ATTRIBUTE_LIST32
;
303 ULONG MappedBaseAddress
;
304 ULONG ImageBaseAddress
;
307 USHORT LoadOrderIndex
;
308 USHORT InitOrderIndex
;
311 BYTE Name
[MAXIMUM_FILENAME_LENGTH
];
312 } RTL_PROCESS_MODULE_INFORMATION32
;
317 RTL_PROCESS_MODULE_INFORMATION32 Modules
[1];
318 } RTL_PROCESS_MODULES32
;
323 RTL_PROCESS_MODULE_INFORMATION32 BaseInfo
;
327 } RTL_PROCESS_MODULE_INFORMATION_EX32
;
334 } SECTION_BASIC_INFORMATION32
;
338 ULONG TransferAddress
;
340 ULONG MaximumStackSize
;
341 ULONG CommittedStackSize
;
343 USHORT MinorSubsystemVersion
;
344 USHORT MajorSubsystemVersion
;
345 USHORT MajorOperatingSystemVersion
;
346 USHORT MinorOperatingSystemVersion
;
347 USHORT ImageCharacteristics
;
348 USHORT DllCharacteristics
;
350 BOOLEAN ImageContainsCode
;
355 } SECTION_IMAGE_INFORMATION32
;
361 } SID_AND_ATTRIBUTES32
;
366 } TOKEN_DEFAULT_DACL32
;
371 SID_AND_ATTRIBUTES32 Groups
[1];
382 } TOKEN_PRIMARY_GROUP32
;
386 SID_AND_ATTRIBUTES32 User
;
392 ULONG TebBaseAddress
;
393 CLIENT_ID32 ClientId
;
397 } THREAD_BASIC_INFORMATION32
;
401 UNICODE_STRING32 ThreadName
;
402 } THREAD_NAME_INFORMATION32
;
406 ULONG PeakVirtualSize
;
408 ULONG PageFaultCount
;
409 ULONG PeakWorkingSetSize
;
410 ULONG WorkingSetSize
;
411 ULONG QuotaPeakPagedPoolUsage
;
412 ULONG QuotaPagedPoolUsage
;
413 ULONG QuotaPeakNonPagedPoolUsage
;
414 ULONG QuotaNonPagedPoolUsage
;
416 ULONG PeakPagefileUsage
;
421 ULONG PeakVirtualSize
;
423 ULONG PageFaultCount
;
424 ULONG PeakWorkingSetSize
;
425 ULONG WorkingSetSize
;
426 ULONG QuotaPeakPagedPoolUsage
;
427 ULONG QuotaPagedPoolUsage
;
428 ULONG QuotaPeakNonPagedPoolUsage
;
429 ULONG QuotaNonPagedPoolUsage
;
431 ULONG PeakPagefileUsage
;
438 CLIENT_ID32 AppClientId
;
443 EXCEPTION_RECORD32 ExceptionRecord
;
448 ULONG HandleToThread
;
457 ULONG HandleToProcess
;
458 ULONG HandleToThread
;
464 ULONG DebugInfoFileOffset
;
476 } ExitProcess
, ExitThread
;
481 ULONG DebugInfoFileOffset
;
490 } DBGUI_WAIT_STATE_CHANGE32
;
495 ULONG KeMaximumIncrement
;
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
;
511 ULONG PageFaultCount
;
512 ULONG MinimumWorkingSet
;
513 ULONG MaximumWorkingSet
;
514 ULONG CurrentSizeIncludingTransitionInPages
;
515 ULONG PeakSizeIncludingTransitionInPages
;
516 ULONG TransitionRePurposeCount
;
518 } SYSTEM_CACHE_INFORMATION32
;
528 } SYSTEM_HANDLE_ENTRY32
;
533 SYSTEM_HANDLE_ENTRY32 Handle
[1];
534 } SYSTEM_HANDLE_INFORMATION32
;
538 ULONG RegistryQuotaAllowed
;
539 ULONG RegistryQuotaUsed
;
541 } SYSTEM_REGISTRY_QUOTA_INFORMATION32
;
546 ULONG UniqueProcessId
;
549 USHORT CreatorBackTraceIndex
;
550 USHORT ObjectTypeIndex
;
551 ULONG HandleAttributes
;
553 } SYSTEM_HANDLE_TABLE_ENTRY_INFO_EX32
;
557 ULONG NumberOfHandles
;
559 SYSTEM_HANDLE_TABLE_ENTRY_INFO_EX32 Handles
[1];
560 } SYSTEM_HANDLE_INFORMATION_EX32
;
565 LOGICAL_PROCESSOR_RELATIONSHIP Relationship
;
576 CACHE_DESCRIPTOR Cache
;
577 ULONGLONG Reserved
[2];
579 } SYSTEM_LOGICAL_PROCESSOR_INFORMATION32
;
584 BYTE EfficiencyClass
;
587 GROUP_AFFINITY32 GroupMask
[ANYSIZE_ARRAY
];
588 } PROCESSOR_RELATIONSHIP32
;
594 GROUP_AFFINITY32 GroupMask
;
595 } NUMA_NODE_RELATIONSHIP32
;
603 PROCESSOR_CACHE_TYPE Type
;
605 GROUP_AFFINITY32 GroupMask
;
606 } CACHE_RELATIONSHIP32
;
610 BYTE MaximumProcessorCount
;
611 BYTE ActiveProcessorCount
;
613 ULONG ActiveProcessorMask
;
614 } PROCESSOR_GROUP_INFO32
;
618 WORD MaximumGroupCount
;
619 WORD ActiveGroupCount
;
621 PROCESSOR_GROUP_INFO32 GroupInfo
[ANYSIZE_ARRAY
];
622 } GROUP_RELATIONSHIP32
;
626 LOGICAL_PROCESSOR_RELATIONSHIP Relationship
;
630 PROCESSOR_RELATIONSHIP32 Processor
;
631 NUMA_NODE_RELATIONSHIP32 NumaNode
;
632 CACHE_RELATIONSHIP32 Cache
;
633 GROUP_RELATIONSHIP32 Group
;
635 } SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX32
;
639 LARGE_INTEGER KernelTime
;
640 LARGE_INTEGER UserTime
;
641 LARGE_INTEGER CreateTime
;
644 CLIENT_ID32 ClientId
;
645 DWORD dwCurrentPriority
;
646 DWORD dwBasePriority
;
647 DWORD dwContextSwitches
;
651 } SYSTEM_THREAD_INFORMATION32
;
655 ULONG NextEntryOffset
;
657 LARGE_INTEGER WorkingSetPrivateSize
;
658 ULONG HardFaultCount
;
659 ULONG NumberOfThreadsHighWatermark
;
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
;
670 ULONG UniqueProcessKey
;
671 VM_COUNTERS_EX32 vmCounters
;
672 IO_COUNTERS ioCounters
;
673 SYSTEM_THREAD_INFORMATION32 ti
[1];
674 } SYSTEM_PROCESS_INFORMATION32
;
678 SYSTEM_THREAD_INFORMATION32 ThreadInfo
;
681 ULONG Win32StartAddress
;
686 } SYSTEM_EXTENDED_THREAD_INFORMATION32
;
690 ULONG VirtualAddress
;
692 } MEMORY_RANGE_ENTRY32
;
696 ULONG LowestStartingAddress
;
697 ULONG HighestEndingAddress
;
699 } MEM_ADDRESS_REQUIREMENTS32
;
701 typedef struct DECLSPEC_ALIGN(8)
705 DWORD64 Type
: MEM_EXTENDED_PARAMETER_TYPE_BITS
;
706 DWORD64 Reserved
: 64 - MEM_EXTENDED_PARAMETER_TYPE_BITS
;
716 } MEM_EXTENDED_PARAMETER32
;
718 #endif /* __WOW64_STRUCT32_H */