include: Add transact.idl to oledb.idl.
[wine.git] / dlls / wow64 / struct32.h
blobdd5814f431b28df3681e934d85d9e51f4b5d65a4
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 UNICODE_STRING32 SectionFileName;
162 } MEMORY_SECTION_NAME32;
164 typedef union
166 ULONG Flags;
167 struct {
168 ULONG Valid : 1;
169 ULONG ShareCount : 3;
170 ULONG Win32Protection : 11;
171 ULONG Shared : 1;
172 ULONG Node : 6;
173 ULONG Locked : 1;
174 ULONG LargePage : 1;
176 } MEMORY_WORKING_SET_EX_BLOCK32;
178 typedef struct
180 ULONG VirtualAddress;
181 MEMORY_WORKING_SET_EX_BLOCK32 VirtualAttributes;
182 } MEMORY_WORKING_SET_EX_INFORMATION32;
184 typedef struct
186 NTSTATUS ExitStatus;
187 ULONG PebBaseAddress;
188 ULONG AffinityMask;
189 LONG BasePriority;
190 ULONG UniqueProcessId;
191 ULONG InheritedFromUniqueProcessId;
192 } PROCESS_BASIC_INFORMATION32;
194 typedef struct
196 ULONG Version;
197 ULONG Reserved;
198 ULONG Callback;
199 } PROCESS_INSTRUMENTATION_CALLBACK_INFORMATION32;
201 typedef struct
203 ULONG ReserveSize;
204 ULONG ZeroBits;
205 ULONG StackBase;
206 } PROCESS_STACK_ALLOCATION_INFORMATION32;
208 typedef struct
210 ULONG PreferredNode;
211 ULONG Reserved0;
212 ULONG Reserved1;
213 ULONG Reserved2;
214 PROCESS_STACK_ALLOCATION_INFORMATION32 AllocInfo;
215 } PROCESS_STACK_ALLOCATION_INFORMATION_EX32;
217 typedef struct
219 ULONG Size;
220 PS_CREATE_STATE State;
221 union
223 struct
225 ULONG InitFlags;
226 ACCESS_MASK AdditionalFileAccess;
227 } InitState;
228 struct
230 ULONG FileHandle;
231 } FailSection;
232 struct
234 USHORT DllCharacteristics;
235 } ExeFormat;
236 struct
238 ULONG IFEOKey;
239 } ExeName;
240 struct
242 ULONG OutputFlags;
243 ULONG FileHandle;
244 ULONG SectionHandle;
245 ULONGLONG UserProcessParametersNative;
246 ULONG UserProcessParametersWow64;
247 ULONG CurrentParameterFlags;
248 ULONGLONG PebAddressNative;
249 ULONG PebAddressWow64;
250 ULONGLONG ManifestAddress;
251 ULONG ManifestSize;
252 } SuccessState;
254 } PS_CREATE_INFO32;
256 typedef struct
258 ULONG Attribute;
259 ULONG Size;
260 ULONG Value;
261 ULONG ReturnLength;
262 } PS_ATTRIBUTE32;
264 typedef struct
266 ULONG TotalLength;
267 PS_ATTRIBUTE32 Attributes[1];
268 } PS_ATTRIBUTE_LIST32;
270 typedef struct
272 ULONG Section;
273 ULONG MappedBaseAddress;
274 ULONG ImageBaseAddress;
275 ULONG ImageSize;
276 ULONG Flags;
277 USHORT LoadOrderIndex;
278 USHORT InitOrderIndex;
279 USHORT LoadCount;
280 USHORT NameOffset;
281 BYTE Name[MAXIMUM_FILENAME_LENGTH];
282 } RTL_PROCESS_MODULE_INFORMATION32;
284 typedef struct
286 ULONG ModulesCount;
287 RTL_PROCESS_MODULE_INFORMATION32 Modules[1];
288 } RTL_PROCESS_MODULES32;
290 typedef struct
292 USHORT NextOffset;
293 RTL_PROCESS_MODULE_INFORMATION32 BaseInfo;
294 ULONG ImageCheckSum;
295 ULONG TimeDateStamp;
296 ULONG DefaultBase;
297 } RTL_PROCESS_MODULE_INFORMATION_EX32;
299 typedef struct
301 ULONG BaseAddress;
302 ULONG Attributes;
303 LARGE_INTEGER Size;
304 } SECTION_BASIC_INFORMATION32;
306 typedef struct
308 ULONG TransferAddress;
309 ULONG ZeroBits;
310 ULONG MaximumStackSize;
311 ULONG CommittedStackSize;
312 ULONG SubSystemType;
313 USHORT MinorSubsystemVersion;
314 USHORT MajorSubsystemVersion;
315 USHORT MajorOperatingSystemVersion;
316 USHORT MinorOperatingSystemVersion;
317 USHORT ImageCharacteristics;
318 USHORT DllCharacteristics;
319 USHORT Machine;
320 BOOLEAN ImageContainsCode;
321 UCHAR ImageFlags;
322 ULONG LoaderFlags;
323 ULONG ImageFileSize;
324 ULONG CheckSum;
325 } SECTION_IMAGE_INFORMATION32;
327 typedef struct
329 ULONG Sid;
330 DWORD Attributes;
331 } SID_AND_ATTRIBUTES32;
333 typedef struct
335 ULONG DefaultDacl;
336 } TOKEN_DEFAULT_DACL32;
338 typedef struct
340 DWORD GroupCount;
341 SID_AND_ATTRIBUTES32 Groups[1];
342 } TOKEN_GROUPS32;
344 typedef struct
346 ULONG Owner;
347 } TOKEN_OWNER32;
349 typedef struct
351 SID_AND_ATTRIBUTES32 User;
352 } TOKEN_USER32;
354 typedef struct
356 NTSTATUS ExitStatus;
357 ULONG TebBaseAddress;
358 CLIENT_ID32 ClientId;
359 ULONG AffinityMask;
360 LONG Priority;
361 LONG BasePriority;
362 } THREAD_BASIC_INFORMATION32;
364 typedef struct
366 UNICODE_STRING32 Description;
367 } THREAD_DESCRIPTION_INFORMATION32;
369 typedef struct
371 ULONG PeakVirtualSize;
372 ULONG VirtualSize;
373 ULONG PageFaultCount;
374 ULONG PeakWorkingSetSize;
375 ULONG WorkingSetSize;
376 ULONG QuotaPeakPagedPoolUsage;
377 ULONG QuotaPagedPoolUsage;
378 ULONG QuotaPeakNonPagedPoolUsage;
379 ULONG QuotaNonPagedPoolUsage;
380 ULONG PagefileUsage;
381 ULONG PeakPagefileUsage;
382 } VM_COUNTERS32;
384 typedef struct
386 ULONG PeakVirtualSize;
387 ULONG VirtualSize;
388 ULONG PageFaultCount;
389 ULONG PeakWorkingSetSize;
390 ULONG WorkingSetSize;
391 ULONG QuotaPeakPagedPoolUsage;
392 ULONG QuotaPagedPoolUsage;
393 ULONG QuotaPeakNonPagedPoolUsage;
394 ULONG QuotaNonPagedPoolUsage;
395 ULONG PagefileUsage;
396 ULONG PeakPagefileUsage;
397 ULONG PrivateUsage;
398 } VM_COUNTERS_EX32;
400 typedef struct
402 DBG_STATE NewState;
403 CLIENT_ID32 AppClientId;
404 union
406 struct
408 EXCEPTION_RECORD32 ExceptionRecord;
409 ULONG FirstChance;
410 } Exception;
411 struct
413 ULONG HandleToThread;
414 struct
416 ULONG SubSystemKey;
417 ULONG StartAddress;
418 } NewThread;
419 } CreateThread;
420 struct
422 ULONG HandleToProcess;
423 ULONG HandleToThread;
424 struct
426 ULONG SubSystemKey;
427 ULONG FileHandle;
428 ULONG BaseOfImage;
429 ULONG DebugInfoFileOffset;
430 ULONG DebugInfoSize;
431 struct
433 ULONG SubSystemKey;
434 ULONG StartAddress;
435 } InitialThread;
436 } NewProcess;
437 } CreateProcessInfo;
438 struct
440 NTSTATUS ExitStatus;
441 } ExitProcess, ExitThread;
442 struct
444 ULONG FileHandle;
445 ULONG BaseOfDll;
446 ULONG DebugInfoFileOffset;
447 ULONG DebugInfoSize;
448 ULONG NamePointer;
449 } LoadDll;
450 struct
452 ULONG BaseAddress;
453 } UnloadDll;
454 } StateInfo;
455 } DBGUI_WAIT_STATE_CHANGE32;
457 typedef struct
459 ULONG unknown;
460 ULONG KeMaximumIncrement;
461 ULONG PageSize;
462 ULONG MmNumberOfPhysicalPages;
463 ULONG MmLowestPhysicalPage;
464 ULONG MmHighestPhysicalPage;
465 ULONG AllocationGranularity;
466 ULONG LowestUserAddress;
467 ULONG HighestUserAddress;
468 ULONG ActiveProcessorsAffinityMask;
469 BYTE NumberOfProcessors;
470 } SYSTEM_BASIC_INFORMATION32;
472 typedef struct
474 ULONG CurrentSize;
475 ULONG PeakSize;
476 ULONG PageFaultCount;
477 ULONG MinimumWorkingSet;
478 ULONG MaximumWorkingSet;
479 ULONG CurrentSizeIncludingTransitionInPages;
480 ULONG PeakSizeIncludingTransitionInPages;
481 ULONG TransitionRePurposeCount;
482 ULONG Flags;
483 } SYSTEM_CACHE_INFORMATION32;
485 typedef struct
487 ULONG OwnerPid;
488 BYTE ObjectType;
489 BYTE HandleFlags;
490 USHORT HandleValue;
491 ULONG ObjectPointer;
492 ULONG AccessMask;
493 } SYSTEM_HANDLE_ENTRY32;
495 typedef struct
497 ULONG Count;
498 SYSTEM_HANDLE_ENTRY32 Handle[1];
499 } SYSTEM_HANDLE_INFORMATION32;
501 typedef struct
503 ULONG RegistryQuotaAllowed;
504 ULONG RegistryQuotaUsed;
505 ULONG Reserved1;
506 } SYSTEM_REGISTRY_QUOTA_INFORMATION32;
508 typedef struct
510 ULONG Object;
511 ULONG UniqueProcessId;
512 ULONG HandleValue;
513 ULONG GrantedAccess;
514 USHORT CreatorBackTraceIndex;
515 USHORT ObjectTypeIndex;
516 ULONG HandleAttributes;
517 ULONG Reserved;
518 } SYSTEM_HANDLE_TABLE_ENTRY_INFO_EX32;
520 typedef struct
522 ULONG NumberOfHandles;
523 ULONG Reserved;
524 SYSTEM_HANDLE_TABLE_ENTRY_INFO_EX32 Handles[1];
525 } SYSTEM_HANDLE_INFORMATION_EX32;
527 typedef struct
529 ULONG ProcessorMask;
530 LOGICAL_PROCESSOR_RELATIONSHIP Relationship;
531 union
533 struct
535 BYTE Flags;
536 } ProcessorCore;
537 struct
539 DWORD NodeNumber;
540 } NumaNode;
541 CACHE_DESCRIPTOR Cache;
542 ULONGLONG Reserved[2];
544 } SYSTEM_LOGICAL_PROCESSOR_INFORMATION32;
546 typedef struct
548 BYTE Flags;
549 BYTE EfficiencyClass;
550 BYTE Reserved[20];
551 WORD GroupCount;
552 GROUP_AFFINITY32 GroupMask[ANYSIZE_ARRAY];
553 } PROCESSOR_RELATIONSHIP32;
555 typedef struct
557 DWORD NodeNumber;
558 BYTE Reserved[20];
559 GROUP_AFFINITY32 GroupMask;
560 } NUMA_NODE_RELATIONSHIP32;
562 typedef struct
564 BYTE Level;
565 BYTE Associativity;
566 WORD LineSize;
567 DWORD CacheSize;
568 PROCESSOR_CACHE_TYPE Type;
569 BYTE Reserved[20];
570 GROUP_AFFINITY32 GroupMask;
571 } CACHE_RELATIONSHIP32;
573 typedef struct
575 BYTE MaximumProcessorCount;
576 BYTE ActiveProcessorCount;
577 BYTE Reserved[38];
578 ULONG ActiveProcessorMask;
579 } PROCESSOR_GROUP_INFO32;
581 typedef struct
583 WORD MaximumGroupCount;
584 WORD ActiveGroupCount;
585 BYTE Reserved[20];
586 PROCESSOR_GROUP_INFO32 GroupInfo[ANYSIZE_ARRAY];
587 } GROUP_RELATIONSHIP32;
589 typedef struct
591 LOGICAL_PROCESSOR_RELATIONSHIP Relationship;
592 DWORD Size;
593 union
595 PROCESSOR_RELATIONSHIP32 Processor;
596 NUMA_NODE_RELATIONSHIP32 NumaNode;
597 CACHE_RELATIONSHIP32 Cache;
598 GROUP_RELATIONSHIP32 Group;
600 } SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX32;
602 typedef struct
604 LARGE_INTEGER KernelTime;
605 LARGE_INTEGER UserTime;
606 LARGE_INTEGER CreateTime;
607 DWORD dwTickCount;
608 ULONG StartAddress;
609 CLIENT_ID32 ClientId;
610 DWORD dwCurrentPriority;
611 DWORD dwBasePriority;
612 DWORD dwContextSwitches;
613 DWORD dwThreadState;
614 DWORD dwWaitReason;
615 DWORD dwUnknown;
616 } SYSTEM_THREAD_INFORMATION32;
618 typedef struct
620 ULONG NextEntryOffset;
621 DWORD dwThreadCount;
622 DWORD dwUnknown1[6];
623 LARGE_INTEGER CreationTime;
624 LARGE_INTEGER UserTime;
625 LARGE_INTEGER KernelTime;
626 UNICODE_STRING32 ProcessName;
627 DWORD dwBasePriority;
628 ULONG UniqueProcessId;
629 ULONG ParentProcessId;
630 ULONG HandleCount;
631 ULONG SessionId;
632 DWORD dwUnknown4;
633 VM_COUNTERS_EX32 vmCounters;
634 IO_COUNTERS ioCounters;
635 SYSTEM_THREAD_INFORMATION32 ti[1];
636 } SYSTEM_PROCESS_INFORMATION32;
638 struct __server_iovec32
640 ULONG ptr;
641 data_size_t size;
644 struct __server_request_info32
646 union
648 union generic_request req;
649 union generic_reply reply;
650 } u;
651 unsigned int data_count;
652 ULONG reply_data;
653 struct __server_iovec32 data[__SERVER_MAX_DATA];
656 #endif /* __WOW64_STRUCT32_H */