imm32: Move ImmAssociateContext(Ex) around.
[wine.git] / dlls / wow64 / struct32.h
blob76308a7f659f88f79a3add988f5209a8f3769c75
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 BOOLEAN ReplaceIfExists;
98 ULONG RootDirectory;
99 ULONG FileNameLength;
100 WCHAR FileName[1];
101 } FILE_RENAME_INFORMATION32;
103 typedef struct
105 ULONG Mask;
106 WORD Group;
107 WORD Reserved[3];
108 } GROUP_AFFINITY32;
110 typedef struct
112 DWORD NumberOfAssignedProcesses;
113 DWORD NumberOfProcessIdsInList;
114 ULONG ProcessIdList[1];
115 } JOBOBJECT_BASIC_PROCESS_ID_LIST32;
117 typedef struct
119 LARGE_INTEGER PerProcessUserTimeLimit;
120 LARGE_INTEGER PerJobUserTimeLimit;
121 DWORD LimitFlags;
122 ULONG MinimumWorkingSetSize;
123 ULONG MaximumWorkingSetSize;
124 DWORD ActiveProcessLimit;
125 ULONG Affinity;
126 DWORD PriorityClass;
127 DWORD SchedulingClass;
128 } JOBOBJECT_BASIC_LIMIT_INFORMATION32;
130 typedef struct
132 JOBOBJECT_BASIC_LIMIT_INFORMATION32 BasicLimitInformation;
133 IO_COUNTERS IoInfo;
134 ULONG ProcessMemoryLimit;
135 ULONG JobMemoryLimit;
136 ULONG PeakProcessMemoryUsed;
137 ULONG PeakJobMemoryUsed;
138 } JOBOBJECT_EXTENDED_LIMIT_INFORMATION32;
140 typedef struct
142 ULONG CompletionKey;
143 LONG CompletionPort;
144 } JOBOBJECT_ASSOCIATE_COMPLETION_PORT32;
146 typedef struct
148 ULONG BaseAddress;
149 ULONG AllocationBase;
150 DWORD AllocationProtect;
151 ULONG RegionSize;
152 DWORD State;
153 DWORD Protect;
154 DWORD Type;
155 } MEMORY_BASIC_INFORMATION32;
157 typedef struct
159 ULONG AllocationBase;
160 ULONG AllocationProtect;
161 ULONG RegionType;
162 ULONG RegionSize;
163 ULONG CommitSize;
164 ULONG PartitionId;
165 ULONG NodePreference;
166 } MEMORY_REGION_INFORMATION32;
168 typedef struct
170 UNICODE_STRING32 SectionFileName;
171 } MEMORY_SECTION_NAME32;
173 typedef union
175 ULONG Flags;
176 struct {
177 ULONG Valid : 1;
178 ULONG ShareCount : 3;
179 ULONG Win32Protection : 11;
180 ULONG Shared : 1;
181 ULONG Node : 6;
182 ULONG Locked : 1;
183 ULONG LargePage : 1;
185 } MEMORY_WORKING_SET_EX_BLOCK32;
187 typedef struct
189 ULONG VirtualAddress;
190 MEMORY_WORKING_SET_EX_BLOCK32 VirtualAttributes;
191 } MEMORY_WORKING_SET_EX_INFORMATION32;
193 typedef struct
195 NTSTATUS ExitStatus;
196 ULONG PebBaseAddress;
197 ULONG AffinityMask;
198 LONG BasePriority;
199 ULONG UniqueProcessId;
200 ULONG InheritedFromUniqueProcessId;
201 } PROCESS_BASIC_INFORMATION32;
203 typedef struct
205 ULONG Version;
206 ULONG Reserved;
207 ULONG Callback;
208 } PROCESS_INSTRUMENTATION_CALLBACK_INFORMATION32;
210 typedef struct
212 ULONG ReserveSize;
213 ULONG ZeroBits;
214 ULONG StackBase;
215 } PROCESS_STACK_ALLOCATION_INFORMATION32;
217 typedef struct
219 ULONG PreferredNode;
220 ULONG Reserved0;
221 ULONG Reserved1;
222 ULONG Reserved2;
223 PROCESS_STACK_ALLOCATION_INFORMATION32 AllocInfo;
224 } PROCESS_STACK_ALLOCATION_INFORMATION_EX32;
226 typedef struct
228 ULONG Size;
229 PS_CREATE_STATE State;
230 union
232 struct
234 ULONG InitFlags;
235 ACCESS_MASK AdditionalFileAccess;
236 } InitState;
237 struct
239 ULONG FileHandle;
240 } FailSection;
241 struct
243 USHORT DllCharacteristics;
244 } ExeFormat;
245 struct
247 ULONG IFEOKey;
248 } ExeName;
249 struct
251 ULONG OutputFlags;
252 ULONG FileHandle;
253 ULONG SectionHandle;
254 ULONGLONG UserProcessParametersNative;
255 ULONG UserProcessParametersWow64;
256 ULONG CurrentParameterFlags;
257 ULONGLONG PebAddressNative;
258 ULONG PebAddressWow64;
259 ULONGLONG ManifestAddress;
260 ULONG ManifestSize;
261 } SuccessState;
263 } PS_CREATE_INFO32;
265 typedef struct
267 ULONG Attribute;
268 ULONG Size;
269 ULONG Value;
270 ULONG ReturnLength;
271 } PS_ATTRIBUTE32;
273 typedef struct
275 ULONG TotalLength;
276 PS_ATTRIBUTE32 Attributes[1];
277 } PS_ATTRIBUTE_LIST32;
279 typedef struct
281 ULONG Section;
282 ULONG MappedBaseAddress;
283 ULONG ImageBaseAddress;
284 ULONG ImageSize;
285 ULONG Flags;
286 USHORT LoadOrderIndex;
287 USHORT InitOrderIndex;
288 USHORT LoadCount;
289 USHORT NameOffset;
290 BYTE Name[MAXIMUM_FILENAME_LENGTH];
291 } RTL_PROCESS_MODULE_INFORMATION32;
293 typedef struct
295 ULONG ModulesCount;
296 RTL_PROCESS_MODULE_INFORMATION32 Modules[1];
297 } RTL_PROCESS_MODULES32;
299 typedef struct
301 USHORT NextOffset;
302 RTL_PROCESS_MODULE_INFORMATION32 BaseInfo;
303 ULONG ImageCheckSum;
304 ULONG TimeDateStamp;
305 ULONG DefaultBase;
306 } RTL_PROCESS_MODULE_INFORMATION_EX32;
308 typedef struct
310 ULONG BaseAddress;
311 ULONG Attributes;
312 LARGE_INTEGER Size;
313 } SECTION_BASIC_INFORMATION32;
315 typedef struct
317 ULONG TransferAddress;
318 ULONG ZeroBits;
319 ULONG MaximumStackSize;
320 ULONG CommittedStackSize;
321 ULONG SubSystemType;
322 USHORT MinorSubsystemVersion;
323 USHORT MajorSubsystemVersion;
324 USHORT MajorOperatingSystemVersion;
325 USHORT MinorOperatingSystemVersion;
326 USHORT ImageCharacteristics;
327 USHORT DllCharacteristics;
328 USHORT Machine;
329 BOOLEAN ImageContainsCode;
330 UCHAR ImageFlags;
331 ULONG LoaderFlags;
332 ULONG ImageFileSize;
333 ULONG CheckSum;
334 } SECTION_IMAGE_INFORMATION32;
336 typedef struct
338 ULONG Sid;
339 DWORD Attributes;
340 } SID_AND_ATTRIBUTES32;
342 typedef struct
344 ULONG DefaultDacl;
345 } TOKEN_DEFAULT_DACL32;
347 typedef struct
349 DWORD GroupCount;
350 SID_AND_ATTRIBUTES32 Groups[1];
351 } TOKEN_GROUPS32;
353 typedef struct
355 ULONG Owner;
356 } TOKEN_OWNER32;
358 typedef struct
360 SID_AND_ATTRIBUTES32 User;
361 } TOKEN_USER32;
363 typedef struct
365 NTSTATUS ExitStatus;
366 ULONG TebBaseAddress;
367 CLIENT_ID32 ClientId;
368 ULONG AffinityMask;
369 LONG Priority;
370 LONG BasePriority;
371 } THREAD_BASIC_INFORMATION32;
373 typedef struct
375 UNICODE_STRING32 ThreadName;
376 } THREAD_NAME_INFORMATION32;
378 typedef struct
380 ULONG PeakVirtualSize;
381 ULONG VirtualSize;
382 ULONG PageFaultCount;
383 ULONG PeakWorkingSetSize;
384 ULONG WorkingSetSize;
385 ULONG QuotaPeakPagedPoolUsage;
386 ULONG QuotaPagedPoolUsage;
387 ULONG QuotaPeakNonPagedPoolUsage;
388 ULONG QuotaNonPagedPoolUsage;
389 ULONG PagefileUsage;
390 ULONG PeakPagefileUsage;
391 } VM_COUNTERS32;
393 typedef struct
395 ULONG PeakVirtualSize;
396 ULONG VirtualSize;
397 ULONG PageFaultCount;
398 ULONG PeakWorkingSetSize;
399 ULONG WorkingSetSize;
400 ULONG QuotaPeakPagedPoolUsage;
401 ULONG QuotaPagedPoolUsage;
402 ULONG QuotaPeakNonPagedPoolUsage;
403 ULONG QuotaNonPagedPoolUsage;
404 ULONG PagefileUsage;
405 ULONG PeakPagefileUsage;
406 ULONG PrivateUsage;
407 } VM_COUNTERS_EX32;
409 typedef struct
411 DBG_STATE NewState;
412 CLIENT_ID32 AppClientId;
413 union
415 struct
417 EXCEPTION_RECORD32 ExceptionRecord;
418 ULONG FirstChance;
419 } Exception;
420 struct
422 ULONG HandleToThread;
423 struct
425 ULONG SubSystemKey;
426 ULONG StartAddress;
427 } NewThread;
428 } CreateThread;
429 struct
431 ULONG HandleToProcess;
432 ULONG HandleToThread;
433 struct
435 ULONG SubSystemKey;
436 ULONG FileHandle;
437 ULONG BaseOfImage;
438 ULONG DebugInfoFileOffset;
439 ULONG DebugInfoSize;
440 struct
442 ULONG SubSystemKey;
443 ULONG StartAddress;
444 } InitialThread;
445 } NewProcess;
446 } CreateProcessInfo;
447 struct
449 NTSTATUS ExitStatus;
450 } ExitProcess, ExitThread;
451 struct
453 ULONG FileHandle;
454 ULONG BaseOfDll;
455 ULONG DebugInfoFileOffset;
456 ULONG DebugInfoSize;
457 ULONG NamePointer;
458 } LoadDll;
459 struct
461 ULONG BaseAddress;
462 } UnloadDll;
463 } StateInfo;
464 } DBGUI_WAIT_STATE_CHANGE32;
466 typedef struct
468 ULONG unknown;
469 ULONG KeMaximumIncrement;
470 ULONG PageSize;
471 ULONG MmNumberOfPhysicalPages;
472 ULONG MmLowestPhysicalPage;
473 ULONG MmHighestPhysicalPage;
474 ULONG AllocationGranularity;
475 ULONG LowestUserAddress;
476 ULONG HighestUserAddress;
477 ULONG ActiveProcessorsAffinityMask;
478 BYTE NumberOfProcessors;
479 } SYSTEM_BASIC_INFORMATION32;
481 typedef struct
483 ULONG CurrentSize;
484 ULONG PeakSize;
485 ULONG PageFaultCount;
486 ULONG MinimumWorkingSet;
487 ULONG MaximumWorkingSet;
488 ULONG CurrentSizeIncludingTransitionInPages;
489 ULONG PeakSizeIncludingTransitionInPages;
490 ULONG TransitionRePurposeCount;
491 ULONG Flags;
492 } SYSTEM_CACHE_INFORMATION32;
494 typedef struct
496 ULONG OwnerPid;
497 BYTE ObjectType;
498 BYTE HandleFlags;
499 USHORT HandleValue;
500 ULONG ObjectPointer;
501 ULONG AccessMask;
502 } SYSTEM_HANDLE_ENTRY32;
504 typedef struct
506 ULONG Count;
507 SYSTEM_HANDLE_ENTRY32 Handle[1];
508 } SYSTEM_HANDLE_INFORMATION32;
510 typedef struct
512 ULONG RegistryQuotaAllowed;
513 ULONG RegistryQuotaUsed;
514 ULONG Reserved1;
515 } SYSTEM_REGISTRY_QUOTA_INFORMATION32;
517 typedef struct
519 ULONG Object;
520 ULONG UniqueProcessId;
521 ULONG HandleValue;
522 ULONG GrantedAccess;
523 USHORT CreatorBackTraceIndex;
524 USHORT ObjectTypeIndex;
525 ULONG HandleAttributes;
526 ULONG Reserved;
527 } SYSTEM_HANDLE_TABLE_ENTRY_INFO_EX32;
529 typedef struct
531 ULONG NumberOfHandles;
532 ULONG Reserved;
533 SYSTEM_HANDLE_TABLE_ENTRY_INFO_EX32 Handles[1];
534 } SYSTEM_HANDLE_INFORMATION_EX32;
536 typedef struct
538 ULONG ProcessorMask;
539 LOGICAL_PROCESSOR_RELATIONSHIP Relationship;
540 union
542 struct
544 BYTE Flags;
545 } ProcessorCore;
546 struct
548 DWORD NodeNumber;
549 } NumaNode;
550 CACHE_DESCRIPTOR Cache;
551 ULONGLONG Reserved[2];
553 } SYSTEM_LOGICAL_PROCESSOR_INFORMATION32;
555 typedef struct
557 BYTE Flags;
558 BYTE EfficiencyClass;
559 BYTE Reserved[20];
560 WORD GroupCount;
561 GROUP_AFFINITY32 GroupMask[ANYSIZE_ARRAY];
562 } PROCESSOR_RELATIONSHIP32;
564 typedef struct
566 DWORD NodeNumber;
567 BYTE Reserved[20];
568 GROUP_AFFINITY32 GroupMask;
569 } NUMA_NODE_RELATIONSHIP32;
571 typedef struct
573 BYTE Level;
574 BYTE Associativity;
575 WORD LineSize;
576 DWORD CacheSize;
577 PROCESSOR_CACHE_TYPE Type;
578 BYTE Reserved[20];
579 GROUP_AFFINITY32 GroupMask;
580 } CACHE_RELATIONSHIP32;
582 typedef struct
584 BYTE MaximumProcessorCount;
585 BYTE ActiveProcessorCount;
586 BYTE Reserved[38];
587 ULONG ActiveProcessorMask;
588 } PROCESSOR_GROUP_INFO32;
590 typedef struct
592 WORD MaximumGroupCount;
593 WORD ActiveGroupCount;
594 BYTE Reserved[20];
595 PROCESSOR_GROUP_INFO32 GroupInfo[ANYSIZE_ARRAY];
596 } GROUP_RELATIONSHIP32;
598 typedef struct
600 LOGICAL_PROCESSOR_RELATIONSHIP Relationship;
601 DWORD Size;
602 union
604 PROCESSOR_RELATIONSHIP32 Processor;
605 NUMA_NODE_RELATIONSHIP32 NumaNode;
606 CACHE_RELATIONSHIP32 Cache;
607 GROUP_RELATIONSHIP32 Group;
609 } SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX32;
611 typedef struct
613 LARGE_INTEGER KernelTime;
614 LARGE_INTEGER UserTime;
615 LARGE_INTEGER CreateTime;
616 DWORD dwTickCount;
617 ULONG StartAddress;
618 CLIENT_ID32 ClientId;
619 DWORD dwCurrentPriority;
620 DWORD dwBasePriority;
621 DWORD dwContextSwitches;
622 DWORD dwThreadState;
623 DWORD dwWaitReason;
624 DWORD dwUnknown;
625 } SYSTEM_THREAD_INFORMATION32;
627 typedef struct
629 ULONG NextEntryOffset;
630 DWORD dwThreadCount;
631 LARGE_INTEGER WorkingSetPrivateSize;
632 ULONG HardFaultCount;
633 ULONG NumberOfThreadsHighWatermark;
634 ULONGLONG CycleTime;
635 LARGE_INTEGER CreationTime;
636 LARGE_INTEGER UserTime;
637 LARGE_INTEGER KernelTime;
638 UNICODE_STRING32 ProcessName;
639 DWORD dwBasePriority;
640 ULONG UniqueProcessId;
641 ULONG ParentProcessId;
642 ULONG HandleCount;
643 ULONG SessionId;
644 ULONG UniqueProcessKey;
645 VM_COUNTERS_EX32 vmCounters;
646 IO_COUNTERS ioCounters;
647 SYSTEM_THREAD_INFORMATION32 ti[1];
648 } SYSTEM_PROCESS_INFORMATION32;
650 typedef struct
652 SYSTEM_THREAD_INFORMATION32 ThreadInfo;
653 ULONG StackBase;
654 ULONG StackLimit;
655 ULONG Win32StartAddress;
656 ULONG TebBase;
657 ULONG Reserved2;
658 ULONG Reserved3;
659 ULONG Reserved4;
660 } SYSTEM_EXTENDED_THREAD_INFORMATION32;
662 typedef struct
664 ULONG VirtualAddress;
665 ULONG NumberOfBytes;
666 } MEMORY_RANGE_ENTRY32;
668 typedef struct
670 ULONG LowestStartingAddress;
671 ULONG HighestEndingAddress;
672 ULONG Alignment;
673 } MEM_ADDRESS_REQUIREMENTS32;
675 #endif /* __WOW64_STRUCT32_H */