cmd: DIR command outputs free space for the path.
[wine.git] / dlls / wow64 / struct32.h
blob7dc12b752719dfc57deffbce042a840d0725ce93
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 ULONG ImageBase;
196 ULONG SizeOfImage;
197 union
199 ULONG ImageFlags;
200 struct
202 ULONG ImagePartialMap : 1;
203 ULONG ImageNotExecutable : 1;
204 ULONG ImageSigningLevel : 4;
205 ULONG Reserved : 26;
208 } MEMORY_IMAGE_INFORMATION32;
210 typedef struct
212 NTSTATUS ExitStatus;
213 ULONG PebBaseAddress;
214 ULONG AffinityMask;
215 LONG BasePriority;
216 ULONG UniqueProcessId;
217 ULONG InheritedFromUniqueProcessId;
218 } PROCESS_BASIC_INFORMATION32;
220 typedef struct
222 ULONG Version;
223 ULONG Reserved;
224 ULONG Callback;
225 } PROCESS_INSTRUMENTATION_CALLBACK_INFORMATION32;
227 typedef struct
229 ULONG ReserveSize;
230 ULONG ZeroBits;
231 ULONG StackBase;
232 } PROCESS_STACK_ALLOCATION_INFORMATION32;
234 typedef struct
236 ULONG PreferredNode;
237 ULONG Reserved0;
238 ULONG Reserved1;
239 ULONG Reserved2;
240 PROCESS_STACK_ALLOCATION_INFORMATION32 AllocInfo;
241 } PROCESS_STACK_ALLOCATION_INFORMATION_EX32;
243 typedef struct
245 ULONG Size;
246 PS_CREATE_STATE State;
247 union
249 struct
251 ULONG InitFlags;
252 ACCESS_MASK AdditionalFileAccess;
253 } InitState;
254 struct
256 ULONG FileHandle;
257 } FailSection;
258 struct
260 USHORT DllCharacteristics;
261 } ExeFormat;
262 struct
264 ULONG IFEOKey;
265 } ExeName;
266 struct
268 ULONG OutputFlags;
269 ULONG FileHandle;
270 ULONG SectionHandle;
271 ULONGLONG UserProcessParametersNative;
272 ULONG UserProcessParametersWow64;
273 ULONG CurrentParameterFlags;
274 ULONGLONG PebAddressNative;
275 ULONG PebAddressWow64;
276 ULONGLONG ManifestAddress;
277 ULONG ManifestSize;
278 } SuccessState;
280 } PS_CREATE_INFO32;
282 typedef struct
284 ULONG Attribute;
285 ULONG Size;
286 ULONG Value;
287 ULONG ReturnLength;
288 } PS_ATTRIBUTE32;
290 typedef struct
292 ULONG TotalLength;
293 PS_ATTRIBUTE32 Attributes[1];
294 } PS_ATTRIBUTE_LIST32;
296 typedef struct
298 ULONG Section;
299 ULONG MappedBaseAddress;
300 ULONG ImageBaseAddress;
301 ULONG ImageSize;
302 ULONG Flags;
303 USHORT LoadOrderIndex;
304 USHORT InitOrderIndex;
305 USHORT LoadCount;
306 USHORT NameOffset;
307 BYTE Name[MAXIMUM_FILENAME_LENGTH];
308 } RTL_PROCESS_MODULE_INFORMATION32;
310 typedef struct
312 ULONG ModulesCount;
313 RTL_PROCESS_MODULE_INFORMATION32 Modules[1];
314 } RTL_PROCESS_MODULES32;
316 typedef struct
318 USHORT NextOffset;
319 RTL_PROCESS_MODULE_INFORMATION32 BaseInfo;
320 ULONG ImageCheckSum;
321 ULONG TimeDateStamp;
322 ULONG DefaultBase;
323 } RTL_PROCESS_MODULE_INFORMATION_EX32;
325 typedef struct
327 ULONG BaseAddress;
328 ULONG Attributes;
329 LARGE_INTEGER Size;
330 } SECTION_BASIC_INFORMATION32;
332 typedef struct
334 ULONG TransferAddress;
335 ULONG ZeroBits;
336 ULONG MaximumStackSize;
337 ULONG CommittedStackSize;
338 ULONG SubSystemType;
339 USHORT MinorSubsystemVersion;
340 USHORT MajorSubsystemVersion;
341 USHORT MajorOperatingSystemVersion;
342 USHORT MinorOperatingSystemVersion;
343 USHORT ImageCharacteristics;
344 USHORT DllCharacteristics;
345 USHORT Machine;
346 BOOLEAN ImageContainsCode;
347 UCHAR ImageFlags;
348 ULONG LoaderFlags;
349 ULONG ImageFileSize;
350 ULONG CheckSum;
351 } SECTION_IMAGE_INFORMATION32;
353 typedef struct
355 ULONG Sid;
356 DWORD Attributes;
357 } SID_AND_ATTRIBUTES32;
359 typedef struct
361 ULONG DefaultDacl;
362 } TOKEN_DEFAULT_DACL32;
364 typedef struct
366 DWORD GroupCount;
367 SID_AND_ATTRIBUTES32 Groups[1];
368 } TOKEN_GROUPS32;
370 typedef struct
372 ULONG Owner;
373 } TOKEN_OWNER32;
375 typedef struct
377 SID_AND_ATTRIBUTES32 User;
378 } TOKEN_USER32;
380 typedef struct
382 NTSTATUS ExitStatus;
383 ULONG TebBaseAddress;
384 CLIENT_ID32 ClientId;
385 ULONG AffinityMask;
386 LONG Priority;
387 LONG BasePriority;
388 } THREAD_BASIC_INFORMATION32;
390 typedef struct
392 UNICODE_STRING32 ThreadName;
393 } THREAD_NAME_INFORMATION32;
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 } VM_COUNTERS32;
410 typedef struct
412 ULONG PeakVirtualSize;
413 ULONG VirtualSize;
414 ULONG PageFaultCount;
415 ULONG PeakWorkingSetSize;
416 ULONG WorkingSetSize;
417 ULONG QuotaPeakPagedPoolUsage;
418 ULONG QuotaPagedPoolUsage;
419 ULONG QuotaPeakNonPagedPoolUsage;
420 ULONG QuotaNonPagedPoolUsage;
421 ULONG PagefileUsage;
422 ULONG PeakPagefileUsage;
423 ULONG PrivateUsage;
424 } VM_COUNTERS_EX32;
426 typedef struct
428 DBG_STATE NewState;
429 CLIENT_ID32 AppClientId;
430 union
432 struct
434 EXCEPTION_RECORD32 ExceptionRecord;
435 ULONG FirstChance;
436 } Exception;
437 struct
439 ULONG HandleToThread;
440 struct
442 ULONG SubSystemKey;
443 ULONG StartAddress;
444 } NewThread;
445 } CreateThread;
446 struct
448 ULONG HandleToProcess;
449 ULONG HandleToThread;
450 struct
452 ULONG SubSystemKey;
453 ULONG FileHandle;
454 ULONG BaseOfImage;
455 ULONG DebugInfoFileOffset;
456 ULONG DebugInfoSize;
457 struct
459 ULONG SubSystemKey;
460 ULONG StartAddress;
461 } InitialThread;
462 } NewProcess;
463 } CreateProcessInfo;
464 struct
466 NTSTATUS ExitStatus;
467 } ExitProcess, ExitThread;
468 struct
470 ULONG FileHandle;
471 ULONG BaseOfDll;
472 ULONG DebugInfoFileOffset;
473 ULONG DebugInfoSize;
474 ULONG NamePointer;
475 } LoadDll;
476 struct
478 ULONG BaseAddress;
479 } UnloadDll;
480 } StateInfo;
481 } DBGUI_WAIT_STATE_CHANGE32;
483 typedef struct
485 ULONG unknown;
486 ULONG KeMaximumIncrement;
487 ULONG PageSize;
488 ULONG MmNumberOfPhysicalPages;
489 ULONG MmLowestPhysicalPage;
490 ULONG MmHighestPhysicalPage;
491 ULONG AllocationGranularity;
492 ULONG LowestUserAddress;
493 ULONG HighestUserAddress;
494 ULONG ActiveProcessorsAffinityMask;
495 BYTE NumberOfProcessors;
496 } SYSTEM_BASIC_INFORMATION32;
498 typedef struct
500 ULONG CurrentSize;
501 ULONG PeakSize;
502 ULONG PageFaultCount;
503 ULONG MinimumWorkingSet;
504 ULONG MaximumWorkingSet;
505 ULONG CurrentSizeIncludingTransitionInPages;
506 ULONG PeakSizeIncludingTransitionInPages;
507 ULONG TransitionRePurposeCount;
508 ULONG Flags;
509 } SYSTEM_CACHE_INFORMATION32;
511 typedef struct
513 ULONG OwnerPid;
514 BYTE ObjectType;
515 BYTE HandleFlags;
516 USHORT HandleValue;
517 ULONG ObjectPointer;
518 ULONG AccessMask;
519 } SYSTEM_HANDLE_ENTRY32;
521 typedef struct
523 ULONG Count;
524 SYSTEM_HANDLE_ENTRY32 Handle[1];
525 } SYSTEM_HANDLE_INFORMATION32;
527 typedef struct
529 ULONG RegistryQuotaAllowed;
530 ULONG RegistryQuotaUsed;
531 ULONG Reserved1;
532 } SYSTEM_REGISTRY_QUOTA_INFORMATION32;
534 typedef struct
536 ULONG Object;
537 ULONG UniqueProcessId;
538 ULONG HandleValue;
539 ULONG GrantedAccess;
540 USHORT CreatorBackTraceIndex;
541 USHORT ObjectTypeIndex;
542 ULONG HandleAttributes;
543 ULONG Reserved;
544 } SYSTEM_HANDLE_TABLE_ENTRY_INFO_EX32;
546 typedef struct
548 ULONG NumberOfHandles;
549 ULONG Reserved;
550 SYSTEM_HANDLE_TABLE_ENTRY_INFO_EX32 Handles[1];
551 } SYSTEM_HANDLE_INFORMATION_EX32;
553 typedef struct
555 ULONG ProcessorMask;
556 LOGICAL_PROCESSOR_RELATIONSHIP Relationship;
557 union
559 struct
561 BYTE Flags;
562 } ProcessorCore;
563 struct
565 DWORD NodeNumber;
566 } NumaNode;
567 CACHE_DESCRIPTOR Cache;
568 ULONGLONG Reserved[2];
570 } SYSTEM_LOGICAL_PROCESSOR_INFORMATION32;
572 typedef struct
574 BYTE Flags;
575 BYTE EfficiencyClass;
576 BYTE Reserved[20];
577 WORD GroupCount;
578 GROUP_AFFINITY32 GroupMask[ANYSIZE_ARRAY];
579 } PROCESSOR_RELATIONSHIP32;
581 typedef struct
583 DWORD NodeNumber;
584 BYTE Reserved[20];
585 GROUP_AFFINITY32 GroupMask;
586 } NUMA_NODE_RELATIONSHIP32;
588 typedef struct
590 BYTE Level;
591 BYTE Associativity;
592 WORD LineSize;
593 DWORD CacheSize;
594 PROCESSOR_CACHE_TYPE Type;
595 BYTE Reserved[20];
596 GROUP_AFFINITY32 GroupMask;
597 } CACHE_RELATIONSHIP32;
599 typedef struct
601 BYTE MaximumProcessorCount;
602 BYTE ActiveProcessorCount;
603 BYTE Reserved[38];
604 ULONG ActiveProcessorMask;
605 } PROCESSOR_GROUP_INFO32;
607 typedef struct
609 WORD MaximumGroupCount;
610 WORD ActiveGroupCount;
611 BYTE Reserved[20];
612 PROCESSOR_GROUP_INFO32 GroupInfo[ANYSIZE_ARRAY];
613 } GROUP_RELATIONSHIP32;
615 typedef struct
617 LOGICAL_PROCESSOR_RELATIONSHIP Relationship;
618 DWORD Size;
619 union
621 PROCESSOR_RELATIONSHIP32 Processor;
622 NUMA_NODE_RELATIONSHIP32 NumaNode;
623 CACHE_RELATIONSHIP32 Cache;
624 GROUP_RELATIONSHIP32 Group;
626 } SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX32;
628 typedef struct
630 LARGE_INTEGER KernelTime;
631 LARGE_INTEGER UserTime;
632 LARGE_INTEGER CreateTime;
633 DWORD dwTickCount;
634 ULONG StartAddress;
635 CLIENT_ID32 ClientId;
636 DWORD dwCurrentPriority;
637 DWORD dwBasePriority;
638 DWORD dwContextSwitches;
639 DWORD dwThreadState;
640 DWORD dwWaitReason;
641 DWORD dwUnknown;
642 } SYSTEM_THREAD_INFORMATION32;
644 typedef struct
646 ULONG NextEntryOffset;
647 DWORD dwThreadCount;
648 LARGE_INTEGER WorkingSetPrivateSize;
649 ULONG HardFaultCount;
650 ULONG NumberOfThreadsHighWatermark;
651 ULONGLONG CycleTime;
652 LARGE_INTEGER CreationTime;
653 LARGE_INTEGER UserTime;
654 LARGE_INTEGER KernelTime;
655 UNICODE_STRING32 ProcessName;
656 DWORD dwBasePriority;
657 ULONG UniqueProcessId;
658 ULONG ParentProcessId;
659 ULONG HandleCount;
660 ULONG SessionId;
661 ULONG UniqueProcessKey;
662 VM_COUNTERS_EX32 vmCounters;
663 IO_COUNTERS ioCounters;
664 SYSTEM_THREAD_INFORMATION32 ti[1];
665 } SYSTEM_PROCESS_INFORMATION32;
667 typedef struct
669 SYSTEM_THREAD_INFORMATION32 ThreadInfo;
670 ULONG StackBase;
671 ULONG StackLimit;
672 ULONG Win32StartAddress;
673 ULONG TebBase;
674 ULONG Reserved2;
675 ULONG Reserved3;
676 ULONG Reserved4;
677 } SYSTEM_EXTENDED_THREAD_INFORMATION32;
679 typedef struct
681 ULONG VirtualAddress;
682 ULONG NumberOfBytes;
683 } MEMORY_RANGE_ENTRY32;
685 typedef struct
687 ULONG LowestStartingAddress;
688 ULONG HighestEndingAddress;
689 ULONG Alignment;
690 } MEM_ADDRESS_REQUIREMENTS32;
692 typedef struct DECLSPEC_ALIGN(8)
694 struct
696 DWORD64 Type : MEM_EXTENDED_PARAMETER_TYPE_BITS;
697 DWORD64 Reserved : 64 - MEM_EXTENDED_PARAMETER_TYPE_BITS;
699 union
701 DWORD64 ULong64;
702 ULONG Pointer;
703 ULONG Size;
704 ULONG Handle;
705 ULONG ULong;
707 } MEM_EXTENDED_PARAMETER32;
709 #endif /* __WOW64_STRUCT32_H */