winex11.drv: Release window data before calling sync_window_cursor().
[wine.git] / dlls / wow64 / struct32.h
blob9511f80523f2589c43817bf7b54d6ba542703afe
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 #include "wine/server.h"
26 typedef struct
28 ULONG Length;
29 ULONG RootDirectory;
30 ULONG ObjectName;
31 ULONG Attributes;
32 ULONG SecurityDescriptor;
33 ULONG SecurityQualityOfService;
34 } OBJECT_ATTRIBUTES32;
36 typedef struct
38 union
40 NTSTATUS Status;
41 ULONG Pointer;
43 ULONG Information;
44 } IO_STATUS_BLOCK32;
46 typedef struct
48 UNICODE_STRING32 Name;
49 } OBJECT_NAME_INFORMATION32;
51 typedef struct
53 UNICODE_STRING32 TypeName;
54 ULONG TotalNumberOfObjects;
55 ULONG TotalNumberOfHandles;
56 ULONG TotalPagedPoolUsage;
57 ULONG TotalNonPagedPoolUsage;
58 ULONG TotalNamePoolUsage;
59 ULONG TotalHandleTableUsage;
60 ULONG HighWaterNumberOfObjects;
61 ULONG HighWaterNumberOfHandles;
62 ULONG HighWaterPagedPoolUsage;
63 ULONG HighWaterNonPagedPoolUsage;
64 ULONG HighWaterNamePoolUsage;
65 ULONG HighWaterHandleTableUsage;
66 ULONG InvalidAttributes;
67 GENERIC_MAPPING GenericMapping;
68 ULONG ValidAccessMask;
69 BOOLEAN SecurityRequired;
70 BOOLEAN MaintainHandleCount;
71 UCHAR TypeIndex;
72 CHAR ReservedByte;
73 ULONG PoolType;
74 ULONG DefaultPagedPoolCharge;
75 ULONG DefaultNonPagedPoolCharge;
76 } OBJECT_TYPE_INFORMATION32;
78 typedef struct
80 UNICODE_STRING32 ObjectName;
81 UNICODE_STRING32 ObjectTypeName;
82 } DIRECTORY_BASIC_INFORMATION32;
84 typedef struct
86 ULONG CompletionPort;
87 ULONG CompletionKey;
88 } FILE_COMPLETION_INFORMATION32;
90 typedef struct
92 ULONG CompletionKey;
93 ULONG CompletionValue;
94 IO_STATUS_BLOCK32 IoStatusBlock;
95 } FILE_IO_COMPLETION_INFORMATION32;
97 typedef struct
99 BOOLEAN ReplaceIfExists;
100 ULONG RootDirectory;
101 ULONG FileNameLength;
102 WCHAR FileName[1];
103 } FILE_RENAME_INFORMATION32;
105 typedef struct
107 ULONG Mask;
108 WORD Group;
109 WORD Reserved[3];
110 } GROUP_AFFINITY32;
112 typedef struct
114 DWORD NumberOfAssignedProcesses;
115 DWORD NumberOfProcessIdsInList;
116 ULONG ProcessIdList[1];
117 } JOBOBJECT_BASIC_PROCESS_ID_LIST32;
119 typedef struct
121 LARGE_INTEGER PerProcessUserTimeLimit;
122 LARGE_INTEGER PerJobUserTimeLimit;
123 DWORD LimitFlags;
124 ULONG MinimumWorkingSetSize;
125 ULONG MaximumWorkingSetSize;
126 DWORD ActiveProcessLimit;
127 ULONG Affinity;
128 DWORD PriorityClass;
129 DWORD SchedulingClass;
130 } JOBOBJECT_BASIC_LIMIT_INFORMATION32;
132 typedef struct
134 JOBOBJECT_BASIC_LIMIT_INFORMATION32 BasicLimitInformation;
135 IO_COUNTERS IoInfo;
136 ULONG ProcessMemoryLimit;
137 ULONG JobMemoryLimit;
138 ULONG PeakProcessMemoryUsed;
139 ULONG PeakJobMemoryUsed;
140 } JOBOBJECT_EXTENDED_LIMIT_INFORMATION32;
142 typedef struct
144 ULONG CompletionKey;
145 LONG CompletionPort;
146 } JOBOBJECT_ASSOCIATE_COMPLETION_PORT32;
148 typedef struct
150 ULONG BaseAddress;
151 ULONG AllocationBase;
152 DWORD AllocationProtect;
153 ULONG RegionSize;
154 DWORD State;
155 DWORD Protect;
156 DWORD Type;
157 } MEMORY_BASIC_INFORMATION32;
159 typedef struct
161 ULONG AllocationBase;
162 ULONG AllocationProtect;
163 ULONG RegionType;
164 ULONG RegionSize;
165 ULONG CommitSize;
166 ULONG PartitionId;
167 ULONG NodePreference;
168 } MEMORY_REGION_INFORMATION32;
170 typedef struct
172 UNICODE_STRING32 SectionFileName;
173 } MEMORY_SECTION_NAME32;
175 typedef union
177 ULONG Flags;
178 struct {
179 ULONG Valid : 1;
180 ULONG ShareCount : 3;
181 ULONG Win32Protection : 11;
182 ULONG Shared : 1;
183 ULONG Node : 6;
184 ULONG Locked : 1;
185 ULONG LargePage : 1;
187 } MEMORY_WORKING_SET_EX_BLOCK32;
189 typedef struct
191 ULONG VirtualAddress;
192 MEMORY_WORKING_SET_EX_BLOCK32 VirtualAttributes;
193 } MEMORY_WORKING_SET_EX_INFORMATION32;
195 typedef struct
197 NTSTATUS ExitStatus;
198 ULONG PebBaseAddress;
199 ULONG AffinityMask;
200 LONG BasePriority;
201 ULONG UniqueProcessId;
202 ULONG InheritedFromUniqueProcessId;
203 } PROCESS_BASIC_INFORMATION32;
205 typedef struct
207 ULONG Version;
208 ULONG Reserved;
209 ULONG Callback;
210 } PROCESS_INSTRUMENTATION_CALLBACK_INFORMATION32;
212 typedef struct
214 ULONG ReserveSize;
215 ULONG ZeroBits;
216 ULONG StackBase;
217 } PROCESS_STACK_ALLOCATION_INFORMATION32;
219 typedef struct
221 ULONG PreferredNode;
222 ULONG Reserved0;
223 ULONG Reserved1;
224 ULONG Reserved2;
225 PROCESS_STACK_ALLOCATION_INFORMATION32 AllocInfo;
226 } PROCESS_STACK_ALLOCATION_INFORMATION_EX32;
228 typedef struct
230 ULONG Size;
231 PS_CREATE_STATE State;
232 union
234 struct
236 ULONG InitFlags;
237 ACCESS_MASK AdditionalFileAccess;
238 } InitState;
239 struct
241 ULONG FileHandle;
242 } FailSection;
243 struct
245 USHORT DllCharacteristics;
246 } ExeFormat;
247 struct
249 ULONG IFEOKey;
250 } ExeName;
251 struct
253 ULONG OutputFlags;
254 ULONG FileHandle;
255 ULONG SectionHandle;
256 ULONGLONG UserProcessParametersNative;
257 ULONG UserProcessParametersWow64;
258 ULONG CurrentParameterFlags;
259 ULONGLONG PebAddressNative;
260 ULONG PebAddressWow64;
261 ULONGLONG ManifestAddress;
262 ULONG ManifestSize;
263 } SuccessState;
265 } PS_CREATE_INFO32;
267 typedef struct
269 ULONG Attribute;
270 ULONG Size;
271 ULONG Value;
272 ULONG ReturnLength;
273 } PS_ATTRIBUTE32;
275 typedef struct
277 ULONG TotalLength;
278 PS_ATTRIBUTE32 Attributes[1];
279 } PS_ATTRIBUTE_LIST32;
281 typedef struct
283 ULONG Section;
284 ULONG MappedBaseAddress;
285 ULONG ImageBaseAddress;
286 ULONG ImageSize;
287 ULONG Flags;
288 USHORT LoadOrderIndex;
289 USHORT InitOrderIndex;
290 USHORT LoadCount;
291 USHORT NameOffset;
292 BYTE Name[MAXIMUM_FILENAME_LENGTH];
293 } RTL_PROCESS_MODULE_INFORMATION32;
295 typedef struct
297 ULONG ModulesCount;
298 RTL_PROCESS_MODULE_INFORMATION32 Modules[1];
299 } RTL_PROCESS_MODULES32;
301 typedef struct
303 USHORT NextOffset;
304 RTL_PROCESS_MODULE_INFORMATION32 BaseInfo;
305 ULONG ImageCheckSum;
306 ULONG TimeDateStamp;
307 ULONG DefaultBase;
308 } RTL_PROCESS_MODULE_INFORMATION_EX32;
310 typedef struct
312 ULONG BaseAddress;
313 ULONG Attributes;
314 LARGE_INTEGER Size;
315 } SECTION_BASIC_INFORMATION32;
317 typedef struct
319 ULONG TransferAddress;
320 ULONG ZeroBits;
321 ULONG MaximumStackSize;
322 ULONG CommittedStackSize;
323 ULONG SubSystemType;
324 USHORT MinorSubsystemVersion;
325 USHORT MajorSubsystemVersion;
326 USHORT MajorOperatingSystemVersion;
327 USHORT MinorOperatingSystemVersion;
328 USHORT ImageCharacteristics;
329 USHORT DllCharacteristics;
330 USHORT Machine;
331 BOOLEAN ImageContainsCode;
332 UCHAR ImageFlags;
333 ULONG LoaderFlags;
334 ULONG ImageFileSize;
335 ULONG CheckSum;
336 } SECTION_IMAGE_INFORMATION32;
338 typedef struct
340 ULONG Sid;
341 DWORD Attributes;
342 } SID_AND_ATTRIBUTES32;
344 typedef struct
346 ULONG DefaultDacl;
347 } TOKEN_DEFAULT_DACL32;
349 typedef struct
351 DWORD GroupCount;
352 SID_AND_ATTRIBUTES32 Groups[1];
353 } TOKEN_GROUPS32;
355 typedef struct
357 ULONG Owner;
358 } TOKEN_OWNER32;
360 typedef struct
362 SID_AND_ATTRIBUTES32 User;
363 } TOKEN_USER32;
365 typedef struct
367 NTSTATUS ExitStatus;
368 ULONG TebBaseAddress;
369 CLIENT_ID32 ClientId;
370 ULONG AffinityMask;
371 LONG Priority;
372 LONG BasePriority;
373 } THREAD_BASIC_INFORMATION32;
375 typedef struct
377 UNICODE_STRING32 ThreadName;
378 } THREAD_NAME_INFORMATION32;
380 typedef struct
382 ULONG PeakVirtualSize;
383 ULONG VirtualSize;
384 ULONG PageFaultCount;
385 ULONG PeakWorkingSetSize;
386 ULONG WorkingSetSize;
387 ULONG QuotaPeakPagedPoolUsage;
388 ULONG QuotaPagedPoolUsage;
389 ULONG QuotaPeakNonPagedPoolUsage;
390 ULONG QuotaNonPagedPoolUsage;
391 ULONG PagefileUsage;
392 ULONG PeakPagefileUsage;
393 } VM_COUNTERS32;
395 typedef struct
397 ULONG PeakVirtualSize;
398 ULONG VirtualSize;
399 ULONG PageFaultCount;
400 ULONG PeakWorkingSetSize;
401 ULONG WorkingSetSize;
402 ULONG QuotaPeakPagedPoolUsage;
403 ULONG QuotaPagedPoolUsage;
404 ULONG QuotaPeakNonPagedPoolUsage;
405 ULONG QuotaNonPagedPoolUsage;
406 ULONG PagefileUsage;
407 ULONG PeakPagefileUsage;
408 ULONG PrivateUsage;
409 } VM_COUNTERS_EX32;
411 typedef struct
413 DBG_STATE NewState;
414 CLIENT_ID32 AppClientId;
415 union
417 struct
419 EXCEPTION_RECORD32 ExceptionRecord;
420 ULONG FirstChance;
421 } Exception;
422 struct
424 ULONG HandleToThread;
425 struct
427 ULONG SubSystemKey;
428 ULONG StartAddress;
429 } NewThread;
430 } CreateThread;
431 struct
433 ULONG HandleToProcess;
434 ULONG HandleToThread;
435 struct
437 ULONG SubSystemKey;
438 ULONG FileHandle;
439 ULONG BaseOfImage;
440 ULONG DebugInfoFileOffset;
441 ULONG DebugInfoSize;
442 struct
444 ULONG SubSystemKey;
445 ULONG StartAddress;
446 } InitialThread;
447 } NewProcess;
448 } CreateProcessInfo;
449 struct
451 NTSTATUS ExitStatus;
452 } ExitProcess, ExitThread;
453 struct
455 ULONG FileHandle;
456 ULONG BaseOfDll;
457 ULONG DebugInfoFileOffset;
458 ULONG DebugInfoSize;
459 ULONG NamePointer;
460 } LoadDll;
461 struct
463 ULONG BaseAddress;
464 } UnloadDll;
465 } StateInfo;
466 } DBGUI_WAIT_STATE_CHANGE32;
468 typedef struct
470 ULONG unknown;
471 ULONG KeMaximumIncrement;
472 ULONG PageSize;
473 ULONG MmNumberOfPhysicalPages;
474 ULONG MmLowestPhysicalPage;
475 ULONG MmHighestPhysicalPage;
476 ULONG AllocationGranularity;
477 ULONG LowestUserAddress;
478 ULONG HighestUserAddress;
479 ULONG ActiveProcessorsAffinityMask;
480 BYTE NumberOfProcessors;
481 } SYSTEM_BASIC_INFORMATION32;
483 typedef struct
485 ULONG CurrentSize;
486 ULONG PeakSize;
487 ULONG PageFaultCount;
488 ULONG MinimumWorkingSet;
489 ULONG MaximumWorkingSet;
490 ULONG CurrentSizeIncludingTransitionInPages;
491 ULONG PeakSizeIncludingTransitionInPages;
492 ULONG TransitionRePurposeCount;
493 ULONG Flags;
494 } SYSTEM_CACHE_INFORMATION32;
496 typedef struct
498 ULONG OwnerPid;
499 BYTE ObjectType;
500 BYTE HandleFlags;
501 USHORT HandleValue;
502 ULONG ObjectPointer;
503 ULONG AccessMask;
504 } SYSTEM_HANDLE_ENTRY32;
506 typedef struct
508 ULONG Count;
509 SYSTEM_HANDLE_ENTRY32 Handle[1];
510 } SYSTEM_HANDLE_INFORMATION32;
512 typedef struct
514 ULONG RegistryQuotaAllowed;
515 ULONG RegistryQuotaUsed;
516 ULONG Reserved1;
517 } SYSTEM_REGISTRY_QUOTA_INFORMATION32;
519 typedef struct
521 ULONG Object;
522 ULONG UniqueProcessId;
523 ULONG HandleValue;
524 ULONG GrantedAccess;
525 USHORT CreatorBackTraceIndex;
526 USHORT ObjectTypeIndex;
527 ULONG HandleAttributes;
528 ULONG Reserved;
529 } SYSTEM_HANDLE_TABLE_ENTRY_INFO_EX32;
531 typedef struct
533 ULONG NumberOfHandles;
534 ULONG Reserved;
535 SYSTEM_HANDLE_TABLE_ENTRY_INFO_EX32 Handles[1];
536 } SYSTEM_HANDLE_INFORMATION_EX32;
538 typedef struct
540 ULONG ProcessorMask;
541 LOGICAL_PROCESSOR_RELATIONSHIP Relationship;
542 union
544 struct
546 BYTE Flags;
547 } ProcessorCore;
548 struct
550 DWORD NodeNumber;
551 } NumaNode;
552 CACHE_DESCRIPTOR Cache;
553 ULONGLONG Reserved[2];
555 } SYSTEM_LOGICAL_PROCESSOR_INFORMATION32;
557 typedef struct
559 BYTE Flags;
560 BYTE EfficiencyClass;
561 BYTE Reserved[20];
562 WORD GroupCount;
563 GROUP_AFFINITY32 GroupMask[ANYSIZE_ARRAY];
564 } PROCESSOR_RELATIONSHIP32;
566 typedef struct
568 DWORD NodeNumber;
569 BYTE Reserved[20];
570 GROUP_AFFINITY32 GroupMask;
571 } NUMA_NODE_RELATIONSHIP32;
573 typedef struct
575 BYTE Level;
576 BYTE Associativity;
577 WORD LineSize;
578 DWORD CacheSize;
579 PROCESSOR_CACHE_TYPE Type;
580 BYTE Reserved[20];
581 GROUP_AFFINITY32 GroupMask;
582 } CACHE_RELATIONSHIP32;
584 typedef struct
586 BYTE MaximumProcessorCount;
587 BYTE ActiveProcessorCount;
588 BYTE Reserved[38];
589 ULONG ActiveProcessorMask;
590 } PROCESSOR_GROUP_INFO32;
592 typedef struct
594 WORD MaximumGroupCount;
595 WORD ActiveGroupCount;
596 BYTE Reserved[20];
597 PROCESSOR_GROUP_INFO32 GroupInfo[ANYSIZE_ARRAY];
598 } GROUP_RELATIONSHIP32;
600 typedef struct
602 LOGICAL_PROCESSOR_RELATIONSHIP Relationship;
603 DWORD Size;
604 union
606 PROCESSOR_RELATIONSHIP32 Processor;
607 NUMA_NODE_RELATIONSHIP32 NumaNode;
608 CACHE_RELATIONSHIP32 Cache;
609 GROUP_RELATIONSHIP32 Group;
611 } SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX32;
613 typedef struct
615 LARGE_INTEGER KernelTime;
616 LARGE_INTEGER UserTime;
617 LARGE_INTEGER CreateTime;
618 DWORD dwTickCount;
619 ULONG StartAddress;
620 CLIENT_ID32 ClientId;
621 DWORD dwCurrentPriority;
622 DWORD dwBasePriority;
623 DWORD dwContextSwitches;
624 DWORD dwThreadState;
625 DWORD dwWaitReason;
626 DWORD dwUnknown;
627 } SYSTEM_THREAD_INFORMATION32;
629 typedef struct
631 ULONG NextEntryOffset;
632 DWORD dwThreadCount;
633 LARGE_INTEGER WorkingSetPrivateSize;
634 ULONG HardFaultCount;
635 ULONG NumberOfThreadsHighWatermark;
636 ULONGLONG CycleTime;
637 LARGE_INTEGER CreationTime;
638 LARGE_INTEGER UserTime;
639 LARGE_INTEGER KernelTime;
640 UNICODE_STRING32 ProcessName;
641 DWORD dwBasePriority;
642 ULONG UniqueProcessId;
643 ULONG ParentProcessId;
644 ULONG HandleCount;
645 ULONG SessionId;
646 ULONG UniqueProcessKey;
647 VM_COUNTERS_EX32 vmCounters;
648 IO_COUNTERS ioCounters;
649 SYSTEM_THREAD_INFORMATION32 ti[1];
650 } SYSTEM_PROCESS_INFORMATION32;
652 typedef struct
654 SYSTEM_THREAD_INFORMATION32 ThreadInfo;
655 ULONG StackBase;
656 ULONG StackLimit;
657 ULONG Win32StartAddress;
658 ULONG TebBase;
659 ULONG Reserved2;
660 ULONG Reserved3;
661 ULONG Reserved4;
662 } SYSTEM_EXTENDED_THREAD_INFORMATION32;
664 typedef struct
666 ULONG VirtualAddress;
667 ULONG NumberOfBytes;
668 } MEMORY_RANGE_ENTRY32;
670 struct __server_iovec32
672 ULONG ptr;
673 data_size_t size;
676 struct __server_request_info32
678 union
680 union generic_request req;
681 union generic_reply reply;
682 } u;
683 unsigned int data_count;
684 ULONG reply_data;
685 struct __server_iovec32 data[__SERVER_MAX_DATA];
688 typedef struct
690 ULONG LowestStartingAddress;
691 ULONG HighestEndingAddress;
692 ULONG Alignment;
693 } MEM_ADDRESS_REQUIREMENTS32;
695 #endif /* __WOW64_STRUCT32_H */