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
;
85 UNICODE_STRING32 ObjectName
;
86 UNICODE_STRING32 ObjectTypeName
;
87 } DIRECTORY_BASIC_INFORMATION32
;
93 } FILE_COMPLETION_INFORMATION32
;
98 ULONG CompletionValue
;
99 IO_STATUS_BLOCK32 IoStatusBlock
;
100 } FILE_IO_COMPLETION_INFORMATION32
;
106 BOOLEAN ReplaceIfExists
;
110 ULONG FileNameLength
;
112 } FILE_RENAME_INFORMATION32
;
123 DWORD NumberOfAssignedProcesses
;
124 DWORD NumberOfProcessIdsInList
;
125 ULONG ProcessIdList
[1];
126 } JOBOBJECT_BASIC_PROCESS_ID_LIST32
;
130 LARGE_INTEGER PerProcessUserTimeLimit
;
131 LARGE_INTEGER PerJobUserTimeLimit
;
133 ULONG MinimumWorkingSetSize
;
134 ULONG MaximumWorkingSetSize
;
135 DWORD ActiveProcessLimit
;
138 DWORD SchedulingClass
;
139 } JOBOBJECT_BASIC_LIMIT_INFORMATION32
;
143 JOBOBJECT_BASIC_LIMIT_INFORMATION32 BasicLimitInformation
;
145 ULONG ProcessMemoryLimit
;
146 ULONG JobMemoryLimit
;
147 ULONG PeakProcessMemoryUsed
;
148 ULONG PeakJobMemoryUsed
;
149 } JOBOBJECT_EXTENDED_LIMIT_INFORMATION32
;
155 } JOBOBJECT_ASSOCIATE_COMPLETION_PORT32
;
160 ULONG AllocationBase
;
161 DWORD AllocationProtect
;
166 } MEMORY_BASIC_INFORMATION32
;
170 ULONG AllocationBase
;
171 ULONG AllocationProtect
;
176 ULONG NodePreference
;
177 } MEMORY_REGION_INFORMATION32
;
181 UNICODE_STRING32 SectionFileName
;
182 } MEMORY_SECTION_NAME32
;
189 ULONG ShareCount
: 3;
190 ULONG Win32Protection
: 11;
196 } MEMORY_WORKING_SET_EX_BLOCK32
;
200 ULONG VirtualAddress
;
201 MEMORY_WORKING_SET_EX_BLOCK32 VirtualAttributes
;
202 } MEMORY_WORKING_SET_EX_INFORMATION32
;
213 ULONG ImagePartialMap
: 1;
214 ULONG ImageNotExecutable
: 1;
215 ULONG ImageSigningLevel
: 4;
219 } MEMORY_IMAGE_INFORMATION32
;
224 ULONG PebBaseAddress
;
227 ULONG UniqueProcessId
;
228 ULONG InheritedFromUniqueProcessId
;
229 } PROCESS_BASIC_INFORMATION32
;
236 } PROCESS_INSTRUMENTATION_CALLBACK_INFORMATION32
;
243 } PROCESS_STACK_ALLOCATION_INFORMATION32
;
251 PROCESS_STACK_ALLOCATION_INFORMATION32 AllocInfo
;
252 } PROCESS_STACK_ALLOCATION_INFORMATION_EX32
;
257 PS_CREATE_STATE State
;
263 ACCESS_MASK AdditionalFileAccess
;
271 USHORT DllCharacteristics
;
282 ULONGLONG UserProcessParametersNative
;
283 ULONG UserProcessParametersWow64
;
284 ULONG CurrentParameterFlags
;
285 ULONGLONG PebAddressNative
;
286 ULONG PebAddressWow64
;
287 ULONGLONG ManifestAddress
;
304 PS_ATTRIBUTE32 Attributes
[1];
305 } PS_ATTRIBUTE_LIST32
;
310 ULONG MappedBaseAddress
;
311 ULONG ImageBaseAddress
;
314 USHORT LoadOrderIndex
;
315 USHORT InitOrderIndex
;
318 BYTE Name
[MAXIMUM_FILENAME_LENGTH
];
319 } RTL_PROCESS_MODULE_INFORMATION32
;
324 RTL_PROCESS_MODULE_INFORMATION32 Modules
[1];
325 } RTL_PROCESS_MODULES32
;
330 RTL_PROCESS_MODULE_INFORMATION32 BaseInfo
;
334 } RTL_PROCESS_MODULE_INFORMATION_EX32
;
341 } SECTION_BASIC_INFORMATION32
;
345 ULONG TransferAddress
;
347 ULONG MaximumStackSize
;
348 ULONG CommittedStackSize
;
350 USHORT MinorSubsystemVersion
;
351 USHORT MajorSubsystemVersion
;
352 USHORT MajorOperatingSystemVersion
;
353 USHORT MinorOperatingSystemVersion
;
354 USHORT ImageCharacteristics
;
355 USHORT DllCharacteristics
;
357 BOOLEAN ImageContainsCode
;
362 } SECTION_IMAGE_INFORMATION32
;
368 } SID_AND_ATTRIBUTES32
;
373 } TOKEN_DEFAULT_DACL32
;
378 SID_AND_ATTRIBUTES32 Groups
[1];
389 } TOKEN_PRIMARY_GROUP32
;
393 SID_AND_ATTRIBUTES32 User
;
399 ULONG TebBaseAddress
;
400 CLIENT_ID32 ClientId
;
404 } THREAD_BASIC_INFORMATION32
;
408 UNICODE_STRING32 ThreadName
;
409 } THREAD_NAME_INFORMATION32
;
413 ULONG PeakVirtualSize
;
415 ULONG PageFaultCount
;
416 ULONG PeakWorkingSetSize
;
417 ULONG WorkingSetSize
;
418 ULONG QuotaPeakPagedPoolUsage
;
419 ULONG QuotaPagedPoolUsage
;
420 ULONG QuotaPeakNonPagedPoolUsage
;
421 ULONG QuotaNonPagedPoolUsage
;
423 ULONG PeakPagefileUsage
;
428 ULONG PeakVirtualSize
;
430 ULONG PageFaultCount
;
431 ULONG PeakWorkingSetSize
;
432 ULONG WorkingSetSize
;
433 ULONG QuotaPeakPagedPoolUsage
;
434 ULONG QuotaPagedPoolUsage
;
435 ULONG QuotaPeakNonPagedPoolUsage
;
436 ULONG QuotaNonPagedPoolUsage
;
438 ULONG PeakPagefileUsage
;
445 CLIENT_ID32 AppClientId
;
450 EXCEPTION_RECORD32 ExceptionRecord
;
455 ULONG HandleToThread
;
464 ULONG HandleToProcess
;
465 ULONG HandleToThread
;
471 ULONG DebugInfoFileOffset
;
483 } ExitProcess
, ExitThread
;
488 ULONG DebugInfoFileOffset
;
497 } DBGUI_WAIT_STATE_CHANGE32
;
502 ULONG KeMaximumIncrement
;
504 ULONG MmNumberOfPhysicalPages
;
505 ULONG MmLowestPhysicalPage
;
506 ULONG MmHighestPhysicalPage
;
507 ULONG AllocationGranularity
;
508 ULONG LowestUserAddress
;
509 ULONG HighestUserAddress
;
510 ULONG ActiveProcessorsAffinityMask
;
511 BYTE NumberOfProcessors
;
512 } SYSTEM_BASIC_INFORMATION32
;
518 ULONG PageFaultCount
;
519 ULONG MinimumWorkingSet
;
520 ULONG MaximumWorkingSet
;
521 ULONG CurrentSizeIncludingTransitionInPages
;
522 ULONG PeakSizeIncludingTransitionInPages
;
523 ULONG TransitionRePurposeCount
;
525 } SYSTEM_CACHE_INFORMATION32
;
535 } SYSTEM_HANDLE_ENTRY32
;
540 SYSTEM_HANDLE_ENTRY32 Handle
[1];
541 } SYSTEM_HANDLE_INFORMATION32
;
545 ULONG RegistryQuotaAllowed
;
546 ULONG RegistryQuotaUsed
;
548 } SYSTEM_REGISTRY_QUOTA_INFORMATION32
;
553 ULONG UniqueProcessId
;
556 USHORT CreatorBackTraceIndex
;
557 USHORT ObjectTypeIndex
;
558 ULONG HandleAttributes
;
560 } SYSTEM_HANDLE_TABLE_ENTRY_INFO_EX32
;
564 ULONG NumberOfHandles
;
566 SYSTEM_HANDLE_TABLE_ENTRY_INFO_EX32 Handles
[1];
567 } SYSTEM_HANDLE_INFORMATION_EX32
;
572 LOGICAL_PROCESSOR_RELATIONSHIP Relationship
;
583 CACHE_DESCRIPTOR Cache
;
584 ULONGLONG Reserved
[2];
586 } SYSTEM_LOGICAL_PROCESSOR_INFORMATION32
;
591 BYTE EfficiencyClass
;
594 GROUP_AFFINITY32 GroupMask
[ANYSIZE_ARRAY
];
595 } PROCESSOR_RELATIONSHIP32
;
601 GROUP_AFFINITY32 GroupMask
;
602 } NUMA_NODE_RELATIONSHIP32
;
610 PROCESSOR_CACHE_TYPE Type
;
612 GROUP_AFFINITY32 GroupMask
;
613 } CACHE_RELATIONSHIP32
;
617 BYTE MaximumProcessorCount
;
618 BYTE ActiveProcessorCount
;
620 ULONG ActiveProcessorMask
;
621 } PROCESSOR_GROUP_INFO32
;
625 WORD MaximumGroupCount
;
626 WORD ActiveGroupCount
;
628 PROCESSOR_GROUP_INFO32 GroupInfo
[ANYSIZE_ARRAY
];
629 } GROUP_RELATIONSHIP32
;
633 LOGICAL_PROCESSOR_RELATIONSHIP Relationship
;
637 PROCESSOR_RELATIONSHIP32 Processor
;
638 NUMA_NODE_RELATIONSHIP32 NumaNode
;
639 CACHE_RELATIONSHIP32 Cache
;
640 GROUP_RELATIONSHIP32 Group
;
642 } SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX32
;
646 LARGE_INTEGER KernelTime
;
647 LARGE_INTEGER UserTime
;
648 LARGE_INTEGER CreateTime
;
651 CLIENT_ID32 ClientId
;
652 DWORD dwCurrentPriority
;
653 DWORD dwBasePriority
;
654 DWORD dwContextSwitches
;
658 } SYSTEM_THREAD_INFORMATION32
;
662 ULONG NextEntryOffset
;
664 LARGE_INTEGER WorkingSetPrivateSize
;
665 ULONG HardFaultCount
;
666 ULONG NumberOfThreadsHighWatermark
;
668 LARGE_INTEGER CreationTime
;
669 LARGE_INTEGER UserTime
;
670 LARGE_INTEGER KernelTime
;
671 UNICODE_STRING32 ProcessName
;
672 DWORD dwBasePriority
;
673 ULONG UniqueProcessId
;
674 ULONG ParentProcessId
;
677 ULONG UniqueProcessKey
;
678 VM_COUNTERS_EX32 vmCounters
;
679 IO_COUNTERS ioCounters
;
680 SYSTEM_THREAD_INFORMATION32 ti
[1];
681 } SYSTEM_PROCESS_INFORMATION32
;
685 SYSTEM_THREAD_INFORMATION32 ThreadInfo
;
688 ULONG Win32StartAddress
;
693 } SYSTEM_EXTENDED_THREAD_INFORMATION32
;
697 ULONG VirtualAddress
;
699 } MEMORY_RANGE_ENTRY32
;
703 ULONG LowestStartingAddress
;
704 ULONG HighestEndingAddress
;
706 } MEM_ADDRESS_REQUIREMENTS32
;
708 typedef struct DECLSPEC_ALIGN(8)
712 DWORD64 Type
: MEM_EXTENDED_PARAMETER_TYPE_BITS
;
713 DWORD64 Reserved
: 64 - MEM_EXTENDED_PARAMETER_TYPE_BITS
;
723 } MEM_EXTENDED_PARAMETER32
;
729 } PROCESS_ACCESS_TOKEN32
;
731 #endif /* __WOW64_STRUCT32_H */