ReactOS 0.4.15-dev-5666-gc548b97
winioctl.h
Go to the documentation of this file.
1#ifndef _WINIOCTL_
2#define _WINIOCTL_
3
4#ifdef __cplusplus
5extern "C" {
6#endif
7
8#ifdef _MSC_VER
9#pragma warning(push)
10#pragma warning(disable:4201)
11#pragma warning(disable:4820)
12#endif
13
14#define HIST_NO_OF_BUCKETS 24
15#define HISTOGRAM_BUCKET_SIZE sizeof(HISTOGRAM_BUCKET)
16#define DISK_HISTOGRAM_SIZE sizeof(DISK_HISTOGRAM)
17
18#ifndef _NTDDSTOR_H_
19#define IOCTL_STORAGE_BASE FILE_DEVICE_MASS_STORAGE
20#define IOCTL_STORAGE_CHECK_VERIFY CTL_CODE(IOCTL_STORAGE_BASE, 0x0200, METHOD_BUFFERED, FILE_READ_ACCESS)
21#define IOCTL_STORAGE_CHECK_VERIFY2 CTL_CODE(IOCTL_STORAGE_BASE, 0x0200, METHOD_BUFFERED, FILE_ANY_ACCESS)
22#define IOCTL_STORAGE_MEDIA_REMOVAL CTL_CODE(IOCTL_STORAGE_BASE, 0x0201, METHOD_BUFFERED, FILE_READ_ACCESS)
23#define IOCTL_STORAGE_EJECT_MEDIA CTL_CODE(IOCTL_STORAGE_BASE, 0x0202, METHOD_BUFFERED, FILE_READ_ACCESS)
24#define IOCTL_STORAGE_LOAD_MEDIA CTL_CODE(IOCTL_STORAGE_BASE, 0x0203, METHOD_BUFFERED, FILE_READ_ACCESS)
25#define IOCTL_STORAGE_LOAD_MEDIA2 CTL_CODE(IOCTL_STORAGE_BASE, 0x0203, METHOD_BUFFERED, FILE_ANY_ACCESS)
26#define IOCTL_STORAGE_RESERVE CTL_CODE(IOCTL_STORAGE_BASE, 0x0204, METHOD_BUFFERED, FILE_READ_ACCESS)
27#define IOCTL_STORAGE_RELEASE CTL_CODE(IOCTL_STORAGE_BASE, 0x0205, METHOD_BUFFERED, FILE_READ_ACCESS)
28#define IOCTL_STORAGE_FIND_NEW_DEVICES CTL_CODE(IOCTL_STORAGE_BASE, 0x0206, METHOD_BUFFERED, FILE_READ_ACCESS)
29#define IOCTL_STORAGE_EJECTION_CONTROL CTL_CODE(IOCTL_STORAGE_BASE, 0x0250, METHOD_BUFFERED, FILE_ANY_ACCESS)
30#define IOCTL_STORAGE_MCN_CONTROL CTL_CODE(IOCTL_STORAGE_BASE, 0x0251, METHOD_BUFFERED, FILE_ANY_ACCESS)
31#define IOCTL_STORAGE_GET_MEDIA_TYPES CTL_CODE(IOCTL_STORAGE_BASE, 0x0300, METHOD_BUFFERED, FILE_ANY_ACCESS)
32#define IOCTL_STORAGE_GET_MEDIA_TYPES_EX CTL_CODE(IOCTL_STORAGE_BASE, 0x0301, METHOD_BUFFERED, FILE_ANY_ACCESS)
33#define IOCTL_STORAGE_RESET_BUS CTL_CODE(IOCTL_STORAGE_BASE, 0x0400, METHOD_BUFFERED, FILE_READ_ACCESS)
34#define IOCTL_STORAGE_RESET_DEVICE CTL_CODE(IOCTL_STORAGE_BASE, 0x0401, METHOD_BUFFERED, FILE_READ_ACCESS)
35#define IOCTL_STORAGE_GET_DEVICE_NUMBER CTL_CODE(IOCTL_STORAGE_BASE, 0x0420, METHOD_BUFFERED, FILE_ANY_ACCESS)
36#define IOCTL_STORAGE_PREDICT_FAILURE CTL_CODE(IOCTL_STORAGE_BASE, 0x0440, METHOD_BUFFERED, FILE_ANY_ACCESS)
37#endif
38
39#define IOCTL_DISK_BASE FILE_DEVICE_DISK
40#define IOCTL_DISK_GET_DRIVE_GEOMETRY CTL_CODE(IOCTL_DISK_BASE,0,METHOD_BUFFERED, FILE_ANY_ACCESS)
41#define IOCTL_DISK_GET_PARTITION_INFO CTL_CODE(IOCTL_DISK_BASE,1,METHOD_BUFFERED,FILE_READ_ACCESS)
42#define IOCTL_DISK_SET_PARTITION_INFO CTL_CODE(IOCTL_DISK_BASE,2,METHOD_BUFFERED,FILE_READ_ACCESS|FILE_WRITE_ACCESS)
43#define IOCTL_DISK_GET_DRIVE_LAYOUT CTL_CODE(IOCTL_DISK_BASE,3,METHOD_BUFFERED,FILE_READ_ACCESS)
44#define IOCTL_DISK_SET_DRIVE_LAYOUT CTL_CODE(IOCTL_DISK_BASE,4,METHOD_BUFFERED,FILE_READ_ACCESS|FILE_WRITE_ACCESS)
45#define IOCTL_DISK_VERIFY CTL_CODE(IOCTL_DISK_BASE,5,METHOD_BUFFERED,FILE_ANY_ACCESS)
46#define IOCTL_DISK_FORMAT_TRACKS CTL_CODE(IOCTL_DISK_BASE,6,METHOD_BUFFERED,FILE_READ_ACCESS|FILE_WRITE_ACCESS)
47#define IOCTL_DISK_REASSIGN_BLOCKS CTL_CODE(IOCTL_DISK_BASE,7,METHOD_BUFFERED,FILE_READ_ACCESS|FILE_WRITE_ACCESS)
48#define IOCTL_DISK_PERFORMANCE CTL_CODE(IOCTL_DISK_BASE,8,METHOD_BUFFERED,FILE_ANY_ACCESS)
49#define IOCTL_DISK_IS_WRITABLE CTL_CODE(IOCTL_DISK_BASE,9,METHOD_BUFFERED,FILE_ANY_ACCESS)
50#define IOCTL_DISK_LOGGING CTL_CODE(IOCTL_DISK_BASE,10,METHOD_BUFFERED,FILE_ANY_ACCESS)
51#define IOCTL_DISK_FORMAT_TRACKS_EX CTL_CODE(IOCTL_DISK_BASE,11,METHOD_BUFFERED,FILE_READ_ACCESS|FILE_WRITE_ACCESS)
52#define IOCTL_DISK_HISTOGRAM_STRUCTURE CTL_CODE(IOCTL_DISK_BASE,12,METHOD_BUFFERED,FILE_ANY_ACCESS)
53#define IOCTL_DISK_HISTOGRAM_DATA CTL_CODE(IOCTL_DISK_BASE,13,METHOD_BUFFERED,FILE_ANY_ACCESS)
54#define IOCTL_DISK_HISTOGRAM_RESET CTL_CODE(IOCTL_DISK_BASE,14,METHOD_BUFFERED,FILE_ANY_ACCESS)
55#define IOCTL_DISK_REQUEST_STRUCTURE CTL_CODE(IOCTL_DISK_BASE,15,METHOD_BUFFERED,FILE_ANY_ACCESS)
56#define IOCTL_DISK_REQUEST_DATA CTL_CODE(IOCTL_DISK_BASE,16,METHOD_BUFFERED,FILE_ANY_ACCESS)
57#define IOCTL_DISK_GET_PARTITION_INFO_EX CTL_CODE(IOCTL_DISK_BASE,0x12,METHOD_BUFFERED,FILE_ANY_ACCESS)
58#define IOCTL_DISK_SET_PARTITION_INFO_EX CTL_CODE(IOCTL_DISK_BASE,0x13,METHOD_BUFFERED,FILE_READ_ACCESS | FILE_WRITE_ACCESS)
59#define IOCTL_DISK_GET_DRIVE_LAYOUT_EX CTL_CODE(IOCTL_DISK_BASE,0x14,METHOD_BUFFERED,FILE_ANY_ACCESS)
60#define IOCTL_DISK_SET_DRIVE_LAYOUT_EX CTL_CODE(IOCTL_DISK_BASE,0x15,METHOD_BUFFERED,FILE_READ_ACCESS | FILE_WRITE_ACCESS)
61#define IOCTL_DISK_CREATE_DISK CTL_CODE(IOCTL_DISK_BASE,0x16,METHOD_BUFFERED,FILE_READ_ACCESS | FILE_WRITE_ACCESS)
62#define IOCTL_DISK_GET_LENGTH_INFO CTL_CODE(IOCTL_DISK_BASE,0x17,METHOD_BUFFERED,FILE_READ_ACCESS)
63#define IOCTL_DISK_PERFORMANCE_OFF CTL_CODE(IOCTL_DISK_BASE,0x18,METHOD_BUFFERED,FILE_ANY_ACCESS)
64#define IOCTL_DISK_GET_DRIVE_GEOMETRY_EX CTL_CODE(IOCTL_DISK_BASE,0x28,METHOD_BUFFERED,FILE_ANY_ACCESS)
65#define IOCTL_DISK_GROW_PARTITION CTL_CODE(IOCTL_DISK_BASE,0x34,METHOD_BUFFERED,FILE_READ_ACCESS | FILE_WRITE_ACCESS)
66#define IOCTL_DISK_GET_CACHE_INFORMATION CTL_CODE(IOCTL_DISK_BASE,0x35,METHOD_BUFFERED,FILE_READ_ACCESS)
67#define IOCTL_DISK_SET_CACHE_INFORMATION CTL_CODE(IOCTL_DISK_BASE,0x36,METHOD_BUFFERED,FILE_READ_ACCESS | FILE_WRITE_ACCESS)
68#define IOCTL_DISK_DELETE_DRIVE_LAYOUT CTL_CODE(IOCTL_DISK_BASE,0x40,METHOD_BUFFERED,FILE_READ_ACCESS | FILE_WRITE_ACCESS)
69#define IOCTL_DISK_UPDATE_PROPERTIES CTL_CODE(IOCTL_DISK_BASE,0x50,METHOD_BUFFERED,FILE_ANY_ACCESS)
70#define IOCTL_DISK_CHECK_VERIFY CTL_CODE(IOCTL_DISK_BASE,0x200,METHOD_BUFFERED,FILE_READ_ACCESS)
71#define IOCTL_DISK_MEDIA_REMOVAL CTL_CODE(IOCTL_DISK_BASE,0x201,METHOD_BUFFERED,FILE_READ_ACCESS)
72#define IOCTL_DISK_EJECT_MEDIA CTL_CODE(IOCTL_DISK_BASE,0x202,METHOD_BUFFERED,FILE_READ_ACCESS)
73#define IOCTL_DISK_LOAD_MEDIA CTL_CODE(IOCTL_DISK_BASE,0x203,METHOD_BUFFERED,FILE_READ_ACCESS)
74#define IOCTL_DISK_RESERVE CTL_CODE(IOCTL_DISK_BASE,0x204,METHOD_BUFFERED,FILE_READ_ACCESS)
75#define IOCTL_DISK_RELEASE CTL_CODE(IOCTL_DISK_BASE,0x205,METHOD_BUFFERED,FILE_READ_ACCESS)
76#define IOCTL_DISK_FIND_NEW_DEVICES CTL_CODE(IOCTL_DISK_BASE,0x206,METHOD_BUFFERED,FILE_READ_ACCESS)
77#define IOCTL_DISK_REMOVE_DEVICE CTL_CODE(IOCTL_DISK_BASE,0x207,METHOD_BUFFERED,FILE_READ_ACCESS)
78#define IOCTL_DISK_GET_MEDIA_TYPES CTL_CODE(IOCTL_DISK_BASE,0x300,METHOD_BUFFERED,FILE_ANY_ACCESS)
79#define IOCTL_DISK_UPDATE_DRIVE_SIZE CTL_CODE(IOCTL_DISK_BASE, 0x0032, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
80#define IOCTL_SERIAL_LSRMST_INSERT CTL_CODE(FILE_DEVICE_SERIAL_PORT,31,METHOD_BUFFERED,FILE_ANY_ACCESS)
81#define IOCTL_VOLUME_BASE ((DWORD)'V')
82#define IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS CTL_CODE(IOCTL_VOLUME_BASE, 0, METHOD_BUFFERED, FILE_ANY_ACCESS)
83#define FSCTL_LOCK_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM,6,METHOD_BUFFERED,FILE_ANY_ACCESS)
84#define FSCTL_UNLOCK_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM,7,METHOD_BUFFERED,FILE_ANY_ACCESS)
85#define FSCTL_PIPE_IMPERSONATE CTL_CODE(FILE_DEVICE_NAMED_PIPE, 7, METHOD_BUFFERED, FILE_ANY_ACCESS)
86#define FSCTL_DISMOUNT_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM,8,METHOD_BUFFERED,FILE_ANY_ACCESS)
87#define FSCTL_MOUNT_DBLS_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM,13,METHOD_BUFFERED,FILE_ANY_ACCESS)
88#define FSCTL_GET_COMPRESSION CTL_CODE(FILE_DEVICE_FILE_SYSTEM,15,METHOD_BUFFERED,FILE_ANY_ACCESS)
89#define FSCTL_SET_COMPRESSION CTL_CODE(FILE_DEVICE_FILE_SYSTEM,16,METHOD_BUFFERED,FILE_READ_DATA|FILE_WRITE_DATA)
90#define FSCTL_READ_COMPRESSION CTL_CODE(FILE_DEVICE_FILE_SYSTEM,17,METHOD_NEITHER,FILE_READ_DATA)
91#define FSCTL_WRITE_COMPRESSION CTL_CODE(FILE_DEVICE_FILE_SYSTEM,18,METHOD_NEITHER,FILE_WRITE_DATA)
92#define FSCTL_GET_NTFS_VOLUME_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM,25,METHOD_BUFFERED,FILE_ANY_ACCESS)
93#define FSCTL_GET_NTFS_FILE_RECORD CTL_CODE(FILE_DEVICE_FILE_SYSTEM,26,METHOD_BUFFERED,FILE_ANY_ACCESS)
94#define FSCTL_GET_VOLUME_BITMAP CTL_CODE(FILE_DEVICE_FILE_SYSTEM,27,METHOD_NEITHER,FILE_ANY_ACCESS)
95#define FSCTL_GET_RETRIEVAL_POINTERS CTL_CODE(FILE_DEVICE_FILE_SYSTEM,28,METHOD_NEITHER,FILE_ANY_ACCESS)
96#define FSCTL_MOVE_FILE CTL_CODE(FILE_DEVICE_FILE_SYSTEM,29,METHOD_BUFFERED,FILE_ANY_ACCESS)
97#define FSCTL_GET_REPARSE_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 42, METHOD_BUFFERED, FILE_ANY_ACCESS)
98#define FSCTL_SET_REPARSE_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 41, METHOD_BUFFERED, FILE_ANY_ACCESS)
99#define FSCTL_DELETE_REPARSE_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 43, METHOD_BUFFERED, FILE_ANY_ACCESS)
100#define FSCTL_SET_SPARSE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 49, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
101
102#ifndef _DEVIOCTL_
103#define _DEVIOCTL_
104
105#define DEVICE_TYPE DWORD
106
107#define FILE_DEVICE_BEEP 1
108#define FILE_DEVICE_CD_ROM 2
109#define FILE_DEVICE_CD_ROM_FILE_SYSTEM 3
110#define FILE_DEVICE_CONTROLLER 4
111#define FILE_DEVICE_DATALINK 5
112#define FILE_DEVICE_DFS 6
113#define FILE_DEVICE_DISK 7
114#define FILE_DEVICE_DISK_FILE_SYSTEM 8
115#define FILE_DEVICE_FILE_SYSTEM 9
116#define FILE_DEVICE_INPORT_PORT 10
117#define FILE_DEVICE_KEYBOARD 11
118#define FILE_DEVICE_MAILSLOT 12
119#define FILE_DEVICE_MIDI_IN 13
120#define FILE_DEVICE_MIDI_OUT 14
121#define FILE_DEVICE_MOUSE 15
122#define FILE_DEVICE_MULTI_UNC_PROVIDER 16
123#define FILE_DEVICE_NAMED_PIPE 17
124#define FILE_DEVICE_NETWORK 18
125#define FILE_DEVICE_NETWORK_BROWSER 19
126#define FILE_DEVICE_NETWORK_FILE_SYSTEM 20
127#define FILE_DEVICE_NULL 21
128#define FILE_DEVICE_PARALLEL_PORT 22
129#define FILE_DEVICE_PHYSICAL_NETCARD 23
130#define FILE_DEVICE_PRINTER 24
131#define FILE_DEVICE_SCANNER 25
132#define FILE_DEVICE_SERIAL_MOUSE_PORT 26
133#define FILE_DEVICE_SERIAL_PORT 27
134#define FILE_DEVICE_SCREEN 28
135#define FILE_DEVICE_SOUND 29
136#define FILE_DEVICE_STREAMS 30
137#define FILE_DEVICE_TAPE 31
138#define FILE_DEVICE_TAPE_FILE_SYSTEM 32
139#define FILE_DEVICE_TRANSPORT 33
140#define FILE_DEVICE_UNKNOWN 34
141#define FILE_DEVICE_VIDEO 35
142#define FILE_DEVICE_VIRTUAL_DISK 36
143#define FILE_DEVICE_WAVE_IN 37
144#define FILE_DEVICE_WAVE_OUT 38
145#define FILE_DEVICE_8042_PORT 39
146#define FILE_DEVICE_NETWORK_REDIRECTOR 40
147#define FILE_DEVICE_BATTERY 41
148#define FILE_DEVICE_BUS_EXTENDER 42
149#define FILE_DEVICE_MODEM 43
150#define FILE_DEVICE_VDM 44
151#define FILE_DEVICE_MASS_STORAGE 45
152#define FILE_DEVICE_SMB 46
153#define FILE_DEVICE_KS 47
154#define FILE_DEVICE_CHANGER 48
155#define FILE_DEVICE_SMARTCARD 49
156#define FILE_DEVICE_ACPI 50
157#define FILE_DEVICE_DVD 51
158#define FILE_DEVICE_FULLSCREEN_VIDEO 52
159#define FILE_DEVICE_DFS_FILE_SYSTEM 53
160#define FILE_DEVICE_DFS_VOLUME 54
161#define FILE_DEVICE_SERENUM 55
162#define FILE_DEVICE_TERMSRV 56
163#define FILE_DEVICE_KSEC 57
164#define FILE_DEVICE_FIPS 58
165#define FILE_DEVICE_INFINIBAND 59
166#define FILE_DEVICE_VMBUS 62
167#define FILE_DEVICE_CRYPT_PROVIDER 63
168#define FILE_DEVICE_WPD 64
169#define FILE_DEVICE_BLUETOOTH 65
170#define FILE_DEVICE_MT_COMPOSITE 66
171#define FILE_DEVICE_MT_TRANSPORT 67
172#define FILE_DEVICE_BIOMETRIC 68
173#define FILE_DEVICE_PMI 69
174#define FILE_DEVICE_EHSTOR 70
175#define FILE_DEVICE_DEVAPI 71
176#define FILE_DEVICE_GPIO 72
177#define FILE_DEVICE_USBEX 73
178#define FILE_DEVICE_CONSOLE 80
179#define FILE_DEVICE_NFP 81
180#define FILE_DEVICE_SYSENV 82
181#define FILE_DEVICE_VIRTUAL_BLOCK 83
182#define FILE_DEVICE_POINT_OF_SERVICE 84
183#define FILE_DEVICE_STORAGE_REPLICATION 85
184#define FILE_DEVICE_TRUST_ENV 86
185#define FILE_DEVICE_UCM 87
186#define FILE_DEVICE_UCMTCPCI 88
187#define FILE_DEVICE_PERSISTENT_MEMORY 89
188#define FILE_DEVICE_NVDIMM 90
189#define FILE_DEVICE_HOLOGRAPHIC 91
190#define FILE_DEVICE_SDFXHCI 92
191#define FILE_DEVICE_UCMUCSI 93
192
193/* Also in ddk/winddk.h */
194#define FILE_ANY_ACCESS 0x00000000
195#define FILE_SPECIAL_ACCESS FILE_ANY_ACCESS
196#define FILE_READ_ACCESS 0x00000001
197#define FILE_WRITE_ACCESS 0x00000002
198
199#define METHOD_BUFFERED 0
200#define METHOD_IN_DIRECT 1
201#define METHOD_OUT_DIRECT 2
202#define METHOD_NEITHER 3
203
204#define CTL_CODE(t,f,m,a) (((t)<<16)|((a)<<14)|((f)<<2)|(m))
205#define DEVICE_TYPE_FROM_CTL_CODE(c) (((DWORD)((c)&0xffff0000))>>16)
206
207#endif /* _DEVIOCTL_ */
208
209#define PARTITION_ENTRY_UNUSED 0
210#define PARTITION_FAT_12 1
211#define PARTITION_XENIX_1 2
212#define PARTITION_XENIX_2 3
213#define PARTITION_FAT_16 4
214#define PARTITION_EXTENDED 5
215#define PARTITION_HUGE 6
216#define PARTITION_IFS 7
217#define PARTITION_FAT32 0x0B
218#define PARTITION_FAT32_XINT13 0x0C
219#define PARTITION_XINT13 0x0E
220#define PARTITION_XINT13_EXTENDED 0x0F
221#define PARTITION_PREP 0x41
222#define PARTITION_LDM 0x42
223#define PARTITION_UNIX 0x63
224#define PARTITION_NTFT 0x80
225#define VALID_NTFT 0xC0
226#ifdef __REACTOS__
227#define PARTITION_OLD_LINUX 0x43
228#define PARTITION_LINUX 0x83
229#define PARTITION_FREEBSD 0xA5
230#define PARTITION_OPENBSD 0xA6
231#define PARTITION_NETBSD 0xA9
232#endif
233#define SERIAL_LSRMST_ESCAPE 0
234#define SERIAL_LSRMST_LSR_DATA 1
235#define SERIAL_LSRMST_LSR_NODATA 2
236#define SERIAL_LSRMST_MST 3
237/* Device GUIDs */
238#ifdef DEFINE_GUID
239
240DEFINE_GUID(GUID_DEVINTERFACE_COMPORT, 0x86E0D1E0L, 0x8089,
241 0x11D0, 0x9C, 0xE4, 0x08, 0x00, 0x3E, 0x30, 0x1F, 0x73);
242DEFINE_GUID(GUID_DEVINTERFACE_SERENUM_BUS_ENUMERATOR, 0x4D36E978L, 0xE325,
243 0x11CE, 0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18);
244
245/* obsolete GUID names */
246#define GUID_CLASS_COMPORT GUID_DEVINTERFACE_COMPORT
247#define GUID_SERENUM_BUS_ENUMERATOR GUID_DEVINTERFACE_SERENUM_BUS_ENUMERATOR
248
249#endif /* DEFINE_GUID */
250
251#define DISK_LOGGING_START 0
252#define DISK_LOGGING_STOP 1
253#define DISK_LOGGING_DUMP 2
254#define DISK_BINNING 3
257typedef struct _BIN_RANGE {
261typedef struct _BIN_COUNT {
265typedef struct _BIN_RESULTS {
269
270typedef enum _MEDIA_TYPE {
298
299typedef struct _DISK_GEOMETRY {
306typedef struct _PARTITION_INFORMATION {
316typedef struct _DRIVE_LAYOUT_INFORMATION {
321typedef struct _SET_PARTITION_INFORMATION {
324
325#if (_WIN32_WINNT >= 0x0500)
326/* Actually it should be > 0x0500, since this is not present in Windows 2000;
327 * however we keep >= 0x0500 for compatibility with MS PSDK. */
328
329typedef enum _PARTITION_STYLE {
332 PARTITION_STYLE_RAW
334
335typedef struct _CREATE_DISK_GPT {
336 GUID DiskId;
337 DWORD MaxPartitionCount;
338} CREATE_DISK_GPT, *PCREATE_DISK_GPT;
339typedef struct _CREATE_DISK_MBR {
341} CREATE_DISK_MBR, *PCREATE_DISK_MBR;
342typedef struct _CREATE_DISK {
343 PARTITION_STYLE PartitionStyle;
344 _ANONYMOUS_UNION union {
345 CREATE_DISK_MBR Mbr;
346 CREATE_DISK_GPT Gpt;
347 };
348} CREATE_DISK, *PCREATE_DISK;
349
350typedef enum _DETECTION_TYPE {
351 DetectNone,
352 DetectInt13,
353 DetectExInt13
354} DETECTION_TYPE;
355typedef struct _DISK_INT13_INFO {
356 WORD DriveSelect;
357 DWORD MaxCylinders;
359 WORD MaxHeads;
360 WORD NumberDrives;
361} DISK_INT13_INFO, *PDISK_INT13_INFO;
362typedef struct _DISK_EX_INT13_INFO {
363 WORD ExBufferSize;
364 WORD ExFlags;
365 DWORD ExCylinders;
366 DWORD ExHeads;
367 DWORD ExSectorsPerTrack;
368 DWORD64 ExSectorsPerDrive;
369 WORD ExSectorSize;
370 WORD ExReserved;
371} DISK_EX_INT13_INFO, *PDISK_EX_INT13_INFO;
372typedef struct _DISK_DETECTION_INFO {
373 DWORD SizeOfDetectInfo;
374 DETECTION_TYPE DetectionType;
375 _ANONYMOUS_UNION union {
376 _ANONYMOUS_STRUCT struct {
377 DISK_INT13_INFO Int13;
378 DISK_EX_INT13_INFO ExInt13;
379 };
380 };
381} DISK_DETECTION_INFO, *PDISK_DETECTION_INFO;
382typedef struct _DISK_PARTITION_INFO {
383 DWORD SizeOfPartitionInfo;
384 PARTITION_STYLE PartitionStyle;
385 _ANONYMOUS_UNION union {
386 struct {
389 } Mbr;
390 struct {
391 GUID DiskId;
392 } Gpt;
393 };
394} DISK_PARTITION_INFO, *PDISK_PARTITION_INFO;
395typedef struct _DISK_GEOMETRY_EX {
398 BYTE Data[1];
400
401#if (NTDDI_VERSION < NTDDI_WS03)
402#define DiskGeometryGetPartition(Geometry) \
403 ((PDISK_PARTITION_INFO)((Geometry) + 1))
404
405#define DiskGeometryGetDetect(Geometry)\
406 ((PDISK_DETECTION_INFO)(((PBYTE)DiskGeometryGetPartition(Geometry) + \
407 DiskGeometryGetPartition(Geometry)->SizeOfPartitionInfo)))
408#else
409#define DiskGeometryGetPartition(Geometry) \
410 ((PDISK_PARTITION_INFO)((Geometry)->Data))
411
412#define DiskGeometryGetDetect(Geometry)\
413 ((PDISK_DETECTION_INFO)(((ULONG_PTR)DiskGeometryGetPartition(Geometry) + \
414 DiskGeometryGetPartition(Geometry)->SizeOfPartitionInfo)))
415#endif
416
417typedef struct _PARTITION_INFORMATION_GPT {
421 WCHAR Name[36];
423typedef struct _PARTITION_INFORMATION_MBR {
429typedef struct _PARTITION_INFORMATION_EX {
435#if (NTDDI_VERSION >= NTDDI_WIN10_RS3)
436 BOOLEAN IsServicePartition;
437#endif
438 _ANONYMOUS_UNION union {
441 };
443
444typedef struct _DRIVE_LAYOUT_INFORMATION_GPT {
445 GUID DiskId;
446 LARGE_INTEGER StartingUsableOffset;
447 LARGE_INTEGER UsableLength;
448 DWORD MaxPartitionCount;
449} DRIVE_LAYOUT_INFORMATION_GPT, *PDRIVE_LAYOUT_INFORMATION_GPT;
450typedef struct _DRIVE_LAYOUT_INFORMATION_MBR {
452#if (NTDDI_VERSION >= NTDDI_WIN10_RS1)
454#endif
455} DRIVE_LAYOUT_INFORMATION_MBR, *PDRIVE_LAYOUT_INFORMATION_MBR;
456typedef struct _DRIVE_LAYOUT_INFORMATION_EX {
457 DWORD PartitionStyle;
458 DWORD PartitionCount;
459 _ANONYMOUS_UNION union {
460 DRIVE_LAYOUT_INFORMATION_MBR Mbr;
461 DRIVE_LAYOUT_INFORMATION_GPT Gpt;
462 };
463 PARTITION_INFORMATION_EX PartitionEntry[1];
464} DRIVE_LAYOUT_INFORMATION_EX, *PDRIVE_LAYOUT_INFORMATION_EX;
465
466typedef SET_PARTITION_INFORMATION SET_PARTITION_INFORMATION_MBR;
467typedef PARTITION_INFORMATION_GPT SET_PARTITION_INFORMATION_GPT;
468
469typedef struct _SET_PARTITION_INFORMATION_EX {
470 PARTITION_STYLE PartitionStyle;
471 _ANONYMOUS_UNION union {
472 SET_PARTITION_INFORMATION_MBR Mbr;
473 SET_PARTITION_INFORMATION_GPT Gpt;
475} SET_PARTITION_INFORMATION_EX, *PSET_PARTITION_INFORMATION_EX;
476
477#endif // (_WIN32_WINNT >= 0x0500)
478
479typedef struct _DISK_GROW_PARTITION {
483typedef enum {
496 _ANONYMOUS_UNION union {
497 struct {
502 struct {
506 };
508
509typedef struct _DISK_PERFORMANCE {
523typedef struct _DISK_RECORD {
532typedef struct _DISK_LOGGING {
542typedef struct _FORMAT_PARAMETERS {
549typedef struct _FORMAT_EX_PARAMETERS {
559typedef struct {
562typedef struct _HISTOGRAM_BUCKET {
566typedef struct _DISK_HISTOGRAM {
579typedef struct _DISK_EXTENT {
584typedef struct _VOLUME_DISK_EXTENTS {
588typedef struct {
594typedef struct _PERF_BIN {
599
600#ifndef _NTDDSTOR_H_
601typedef struct _PREVENT_MEDIA_REMOVAL {
604#endif
605
609 struct {
614typedef struct _REASSIGN_BLOCKS {
619typedef struct {
622typedef struct {
625typedef struct _VERIFY_INFORMATION {
629typedef struct {
634typedef struct {
650typedef struct {
655typedef struct {
658typedef struct {
661 UCHAR FileRecordBuffer[1];
663
664#ifdef __REACTOS__
665#define IsRecognizedPartition(t)\
666 (((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_FAT_12))||\
667 ((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_FAT_16))||\
668 ((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_IFS))||\
669 ((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_HUGE))||\
670 ((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_FAT32))||\
671 ((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_FAT32_XINT13))||\
672 ((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_XINT13))||\
673 ((t)==PARTITION_FAT_12)||\
674 ((t)==PARTITION_FAT_16)||\
675 ((t)==PARTITION_IFS)||\
676 ((t)==PARTITION_HUGE)||\
677 ((t)==PARTITION_FAT32)||\
678 ((t)==PARTITION_FAT32_XINT13)||\
679 ((t)==PARTITION_XINT13)||\
680 ((t)==PARTITION_LINUX)||\
681 ((t)==PARTITION_OLD_LINUX)||\
682 ((t)==PARTITION_FREEBSD)||\
683 ((t)==PARTITION_OPENBSD)||\
684 ((t)==PARTITION_NETBSD))
685#else
686#define IsRecognizedPartition(t)\
687 (((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_FAT_12))||\
688 ((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_FAT_16))||\
689 ((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_IFS))||\
690 ((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_HUGE))||\
691 ((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_FAT32))||\
692 ((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_FAT32_XINT13))||\
693 ((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_XINT13))||\
694 ((t)==PARTITION_FAT_12)||\
695 ((t)==PARTITION_FAT_16)||\
696 ((t)==PARTITION_IFS)||\
697 ((t)==PARTITION_HUGE)||\
698 ((t)==PARTITION_FAT32)||\
699 ((t)==PARTITION_FAT32_XINT13)||\
700 ((t)==PARTITION_XINT13))
701#endif
702#define IsContainerPartition(t)\
703 (((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_EXTENDED))||\
704 ((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_XINT13_EXTENDED))||\
705 ((t)==PARTITION_EXTENDED)||\
706 ((t)==PARTITION_XINT13_EXTENDED))
707
708#ifndef _FILESYSTEMFSCTL_
709#define _FILESYSTEMFSCTL_
710
711#define FSCTL_MARK_VOLUME_DIRTY CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 12, METHOD_BUFFERED, FILE_ANY_ACCESS)
712#define FSCTL_FILESYSTEM_GET_STATISTICS CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 24, METHOD_BUFFERED, FILE_ANY_ACCESS)
713#if (_WIN32_WINNT >= _WIN32_WINNT_NT4)
714#define FSCTL_IS_VOLUME_DIRTY CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 30, METHOD_BUFFERED, FILE_ANY_ACCESS)
715#endif
716
717#if (_WIN32_WINNT >= _WIN32_WINNT_WIN8)
718#define FSCTL_GET_INTEGRITY_INFORMATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 159, METHOD_BUFFERED, FILE_ANY_ACCESS)
719#define FSCTL_SET_INTEGRITY_INFORMATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 160, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)
720#endif
721
722#if (_WIN32_WINNT >= _WIN32_WINNT_WINBLUE)
723#define FSCTL_DUPLICATE_EXTENTS_TO_FILE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 209, METHOD_BUFFERED, FILE_WRITE_DATA)
724#endif
725
726#if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K)
727#define VOLUME_IS_DIRTY (0x00000001)
728#define VOLUME_UPGRADE_SCHEDULED (0x00000002)
729#define VOLUME_SESSION_OPEN (0x00000004)
730#endif
731
749
750#define FILESYSTEM_STATISTICS_TYPE_NTFS 1
751#define FILESYSTEM_STATISTICS_TYPE_FAT 2
752#define FILESYSTEM_STATISTICS_TYPE_EXFAT 3
753
754typedef struct _FAT_STATISTICS {
765
766typedef struct _EXFAT_STATISTICS {
777
778typedef struct _NTFS_STATISTICS {
785 struct {
796 struct {
816 struct {
828 struct {
842 struct {
855
856#if (_WIN32_WINNT >= _WIN32_WINNT_WIN8)
860 DWORD Flags;
864
868 DWORD Flags;
870#endif
871
872#if (_WIN32_WINNT >= _WIN32_WINNT_WINBLUE)
873typedef struct _DUPLICATE_EXTENTS_DATA {
879
880#endif
881
882#endif
883
884#ifdef _MSC_VER
885#pragma warning(pop)
886#endif
887
888#ifdef __cplusplus
889}
890#endif
891#endif /* _WINIOCTL_ */
unsigned char BOOLEAN
Definition: bufpool.h:45
static const WCHAR Signature[]
Definition: parser.c:141
unsigned long DWORD
Definition: ntddk_ex.h:95
unsigned short WORD
Definition: ntddk_ex.h:93
unsigned int ULONG
Definition: retypes.h:1
UCHAR CheckSum(LPSTR p, ULONG Len)
Definition: serial.c:197
struct _PARTITION_INFORMATION_MBR * PPARTITION_INFORMATION_MBR
struct _PARTITION_INFORMATION_EX PARTITION_INFORMATION_EX
enum _PARTITION_STYLE PARTITION_STYLE
struct _PARTITION_INFORMATION_EX * PPARTITION_INFORMATION_EX
struct _PARTITION_INFORMATION_MBR PARTITION_INFORMATION_MBR
_PARTITION_STYLE
Definition: imports.h:200
@ PARTITION_STYLE_GPT
Definition: imports.h:202
@ PARTITION_STYLE_MBR
Definition: imports.h:201
struct _PARTITION_INFORMATION_GPT * PPARTITION_INFORMATION_GPT
struct _PARTITION_INFORMATION_GPT PARTITION_INFORMATION_GPT
#define DUMMYUNIONNAME
Definition: ntbasedef.h:32
#define _ANONYMOUS_UNION
Definition: ntbasedef.h:30
#define _ANONYMOUS_STRUCT
Definition: ntbasedef.h:56
enum _MEDIA_TYPE MEDIA_TYPE
_MEDIA_TYPE
Definition: ntdddisk.h:375
unsigned short USHORT
Definition: pedump.c:61
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
Definition: guiddef.h:68
struct _DRIVE_LAYOUT_INFORMATION * PDRIVE_LAYOUT_INFORMATION
struct _FORMAT_EX_PARAMETERS FORMAT_EX_PARAMETERS
struct RETRIEVAL_POINTERS_BUFFER RETRIEVAL_POINTERS_BUFFER
struct _FSCTL_GET_INTEGRITY_INFORMATION_BUFFER * PFSCTL_GET_INTEGRITY_INFORMATION_BUFFER
struct NTFS_VOLUME_DATA_BUFFER * PNTFS_VOLUME_DATA_BUFFER
struct _FAT_STATISTICS * PFAT_STATISTICS
struct VOLUME_BITMAP_BUFFER * PVOLUME_BITMAP_BUFFER
struct _FSCTL_SET_INTEGRITY_INFORMATION_BUFFER * PFSCTL_SET_INTEGRITY_INFORMATION_BUFFER
struct _BIN_RESULTS BIN_RESULTS
struct _VOLUME_DISK_EXTENTS * PVOLUME_DISK_EXTENTS
struct _DISK_HISTOGRAM * PDISK_HISTOGRAM
struct DiskQuotaUserInformation DISKQUOTA_USER_INFORMATION
struct NTFS_EXTENDED_VOLUME_DATA * PNTFS_EXTENDED_VOLUME_DATA
struct _PREVENT_MEDIA_REMOVAL * PPREVENT_MEDIA_REMOVAL
DISK_CACHE_RETENTION_PRIORITY
Definition: winioctl.h:483
@ KeepReadData
Definition: winioctl.h:486
@ EqualPriority
Definition: winioctl.h:484
@ KeepPrefetchedData
Definition: winioctl.h:485
struct DiskQuotaUserInformation * PDISKQUOTA_USER_INFORMATION
struct RETRIEVAL_POINTERS_BUFFER * PRETRIEVAL_POINTERS_BUFFER
struct _FORMAT_PARAMETERS FORMAT_PARAMETERS
struct STARTING_VCN_INPUT_BUFFER * PSTARTING_VCN_INPUT_BUFFER
struct _FILESYSTEM_STATISTICS * PFILESYSTEM_STATISTICS
struct _EXFAT_STATISTICS EXFAT_STATISTICS
struct _FSCTL_GET_INTEGRITY_INFORMATION_BUFFER FSCTL_GET_INTEGRITY_INFORMATION_BUFFER
struct _EXFAT_STATISTICS * PEXFAT_STATISTICS
struct _DISK_CACHE_INFORMATION DISK_CACHE_INFORMATION
struct _REASSIGN_BLOCKS * PREASSIGN_BLOCKS
struct _DISK_CACHE_INFORMATION * PDISK_CACHE_INFORMATION
struct _FILESYSTEM_STATISTICS FILESYSTEM_STATISTICS
struct _VOLUME_DISK_EXTENTS VOLUME_DISK_EXTENTS
struct NTFS_FILE_RECORD_OUTPUT_BUFFER * PNTFS_FILE_RECORD_OUTPUT_BUFFER
struct _DISK_EXTENT DISK_EXTENT
struct STARTING_LCN_INPUT_BUFFER * PSTARTING_LCN_INPUT_BUFFER
struct _BIN_RANGE * PBIN_RANGE
struct _DISK_PERFORMANCE * PDISK_PERFORMANCE
struct _HISTOGRAM_BUCKET HISTOGRAM_BUCKET
struct _DISK_LOGGING DISK_LOGGING
enum _BIN_TYPES BIN_TYPES
struct _DISK_GEOMETRY DISK_GEOMETRY
struct _FORMAT_PARAMETERS * PFORMAT_PARAMETERS
struct _PREVENT_MEDIA_REMOVAL PREVENT_MEDIA_REMOVAL
struct _DISK_GROW_PARTITION * PDISK_GROW_PARTITION
struct _DISK_RECORD * PDISK_RECORD
struct _DISK_RECORD DISK_RECORD
struct _DISK_GROW_PARTITION DISK_GROW_PARTITION
struct _PARTITION_INFORMATION PARTITION_INFORMATION
enum _MEDIA_TYPE MEDIA_TYPE
struct _BIN_RANGE BIN_RANGE
struct _DISK_EXTENT * PDISK_EXTENT
@ F3_120M_512
Definition: winioctl.h:284
@ F3_1Pt44_512
Definition: winioctl.h:273
@ F5_180_512
Definition: winioctl.h:280
@ RemovableMedia
Definition: winioctl.h:282
@ F5_1Pt23_1024
Definition: winioctl.h:290
@ FixedMedia
Definition: winioctl.h:283
@ F3_200Mb_512
Definition: winioctl.h:294
@ F3_1Pt23_1024
Definition: winioctl.h:289
@ F3_720_512
Definition: winioctl.h:276
@ Unknown
Definition: winioctl.h:271
@ F3_240M_512
Definition: winioctl.h:295
@ F3_1Pt2_512
Definition: winioctl.h:288
@ F5_360_512
Definition: winioctl.h:277
@ F3_640_512
Definition: winioctl.h:285
@ F3_32M_512
Definition: winioctl.h:296
@ F5_160_512
Definition: winioctl.h:281
@ F5_320_1024
Definition: winioctl.h:279
@ F5_320_512
Definition: winioctl.h:278
@ F3_20Pt8_512
Definition: winioctl.h:275
@ F8_256_128
Definition: winioctl.h:293
@ F5_1Pt2_512
Definition: winioctl.h:272
@ F5_720_512
Definition: winioctl.h:287
@ F5_640_512
Definition: winioctl.h:286
@ F3_2Pt88_512
Definition: winioctl.h:274
@ F3_128Mb_512
Definition: winioctl.h:291
@ F3_230Mb_512
Definition: winioctl.h:292
enum _MEDIA_TYPE * PMEDIA_TYPE
struct _SET_PARTITION_INFORMATION * PSET_PARTITION_INFORMATION
struct _VERIFY_INFORMATION * PVERIFY_INFORMATION
struct _BIN_COUNT BIN_COUNT
struct _DISK_LOGGING * PDISK_LOGGING
struct _PARTITION_INFORMATION * PPARTITION_INFORMATION
struct _PERF_BIN * PPERF_BIN
struct _NTFS_STATISTICS NTFS_STATISTICS
struct _REASSIGN_BLOCKS REASSIGN_BLOCKS
struct _FAT_STATISTICS FAT_STATISTICS
struct _DISK_PERFORMANCE DISK_PERFORMANCE
_BIN_TYPES
Definition: winioctl.h:256
@ RequestLocation
Definition: winioctl.h:256
@ RequestSize
Definition: winioctl.h:256
struct _DRIVE_LAYOUT_INFORMATION DRIVE_LAYOUT_INFORMATION
WORD BAD_TRACK_NUMBER
Definition: winioctl.h:255
struct _BIN_RESULTS * PBIN_RESULTS
struct _DUPLICATE_EXTENTS_DATA DUPLICATE_EXTENTS_DATA
struct _DUPLICATE_EXTENTS_DATA * PDUPLICATE_EXTENTS_DATA
struct MOVE_FILE_DATA * PMOVE_FILE_DATA
struct NTFS_FILE_RECORD_INPUT_BUFFER * PNTFS_FILE_RECORD_INPUT_BUFFER
struct _FORMAT_EX_PARAMETERS * PFORMAT_EX_PARAMETERS
struct _SET_PARTITION_INFORMATION SET_PARTITION_INFORMATION
struct _NTFS_STATISTICS * PNTFS_STATISTICS
struct _FSCTL_SET_INTEGRITY_INFORMATION_BUFFER FSCTL_SET_INTEGRITY_INFORMATION_BUFFER
struct _BIN_COUNT * PBIN_COUNT
struct _PERF_BIN PERF_BIN
struct _DISK_HISTOGRAM DISK_HISTOGRAM
struct _HISTOGRAM_BUCKET * PHISTOGRAM_BUCKET
WORD * PBAD_TRACK_NUMBER
Definition: winioctl.h:255
struct _DISK_GEOMETRY * PDISK_GEOMETRY
struct _VERIFY_INFORMATION VERIFY_INFORMATION
struct _DISK_GEOMETRY_EX * PDISK_GEOMETRY_EX
struct _DISK_GEOMETRY_EX DISK_GEOMETRY_EX
LARGE_INTEGER Length
Definition: winioctl.h:560
LARGE_INTEGER StartingLcn
Definition: winioctl.h:591
LARGE_INTEGER StartingVcn
Definition: winioctl.h:590
HANDLE FileHandle
Definition: winioctl.h:589
DWORD ClusterCount
Definition: winioctl.h:592
LARGE_INTEGER FileReferenceNumber
Definition: winioctl.h:656
LARGE_INTEGER FileReferenceNumber
Definition: winioctl.h:659
LARGE_INTEGER NumberSectors
Definition: winioctl.h:636
LARGE_INTEGER MftValidDataLength
Definition: winioctl.h:644
LARGE_INTEGER TotalReserved
Definition: winioctl.h:639
LARGE_INTEGER Mft2StartLcn
Definition: winioctl.h:646
LARGE_INTEGER FreeClusters
Definition: winioctl.h:638
DWORD BytesPerFileRecordSegment
Definition: winioctl.h:642
LARGE_INTEGER MftZoneStart
Definition: winioctl.h:647
DWORD ClustersPerFileRecordSegment
Definition: winioctl.h:643
LARGE_INTEGER TotalClusters
Definition: winioctl.h:637
LARGE_INTEGER VolumeSerialNumber
Definition: winioctl.h:635
LARGE_INTEGER MftZoneEnd
Definition: winioctl.h:648
LARGE_INTEGER MftStartLcn
Definition: winioctl.h:645
LARGE_INTEGER NextVcn
Definition: winioctl.h:610
LARGE_INTEGER StartingVcn
Definition: winioctl.h:608
struct RETRIEVAL_POINTERS_BUFFER::@3303 Extents[1]
LARGE_INTEGER StartingLcn
Definition: winioctl.h:620
LARGE_INTEGER StartingVcn
Definition: winioctl.h:623
LARGE_INTEGER BitmapSize
Definition: winioctl.h:631
LARGE_INTEGER StartingLcn
Definition: winioctl.h:630
DWORD BinCount
Definition: winioctl.h:263
BIN_RANGE BinRange
Definition: winioctl.h:262
LARGE_INTEGER Length
Definition: winioctl.h:259
LARGE_INTEGER StartValue
Definition: winioctl.h:258
BIN_COUNT BinCounts[1]
Definition: winioctl.h:267
DWORD NumberOfBins
Definition: winioctl.h:266
struct _DISK_CACHE_INFORMATION::@3299::@3301 ScalarPrefetch
DISK_CACHE_RETENTION_PRIORITY ReadRetentionPriority
Definition: winioctl.h:492
WORD DisablePrefetchTransferLength
Definition: winioctl.h:494
struct _DISK_CACHE_INFORMATION::@3299::@3302 BlockPrefetch
DISK_CACHE_RETENTION_PRIORITY WriteRetentionPriority
Definition: winioctl.h:493
DWORD DiskNumber
Definition: winioctl.h:580
LARGE_INTEGER StartingOffset
Definition: ntddvol.h:114
LARGE_INTEGER ExtentLength
Definition: ntddvol.h:115
DISK_GEOMETRY Geometry
Definition: winioctl.h:330
LARGE_INTEGER DiskSize
Definition: winioctl.h:331
MEDIA_TYPE MediaType
Definition: ntdddisk.h:406
LARGE_INTEGER Cylinders
Definition: ntdddisk.h:405
DWORD TracksPerCylinder
Definition: winioctl.h:302
DWORD SectorsPerTrack
Definition: winioctl.h:303
DWORD BytesPerSector
Definition: winioctl.h:304
LARGE_INTEGER BytesToGrow
Definition: winioctl.h:481
DWORD Granularity
Definition: winioctl.h:573
LARGE_INTEGER AverageWrite
Definition: winioctl.h:572
DWORD WriteCount
Definition: winioctl.h:576
LARGE_INTEGER Start
Definition: winioctl.h:568
PHISTOGRAM_BUCKET Histogram
Definition: winioctl.h:577
LARGE_INTEGER End
Definition: winioctl.h:569
DWORD ReadCount
Definition: winioctl.h:575
LARGE_INTEGER DiskSize
Definition: winioctl.h:567
LARGE_INTEGER AverageRead
Definition: winioctl.h:571
LARGE_INTEGER Average
Definition: winioctl.h:570
DWORD BufferSize
Definition: winioctl.h:535
BYTE Function
Definition: winioctl.h:533
PVOID BufferAddress
Definition: winioctl.h:534
LARGE_INTEGER ReadTime
Definition: ntdddisk.h:608
LARGE_INTEGER BytesWritten
Definition: ntdddisk.h:607
WCHAR StorageManagerName[8]
Definition: ntdddisk.h:617
LARGE_INTEGER QueryTime
Definition: ntdddisk.h:615
LARGE_INTEGER WriteTime
Definition: ntdddisk.h:609
LARGE_INTEGER IdleTime
Definition: ntdddisk.h:610
LARGE_INTEGER BytesRead
Definition: ntdddisk.h:606
DWORD StorageDeviceNumber
Definition: winioctl.h:520
LARGE_INTEGER ByteOffset
Definition: winioctl.h:524
PVOID VirtualAddress
Definition: winioctl.h:527
BOOLEAN ReadRequest
Definition: winioctl.h:530
LARGE_INTEGER EndTime
Definition: winioctl.h:526
LARGE_INTEGER StartTime
Definition: winioctl.h:525
BYTE DeviceNumber
Definition: winioctl.h:529
DWORD NumberOfBytes
Definition: winioctl.h:528
PARTITION_INFORMATION PartitionEntry[1]
Definition: ntdddisk.h:426
LARGE_INTEGER ByteCount
Definition: shellext.h:202
LARGE_INTEGER SourceFileOffset
Definition: shellext.h:200
LARGE_INTEGER TargetFileOffset
Definition: shellext.h:201
ULONG NonCachedWriteBytes
Definition: winioctl.h:773
ULONG NonCachedDiskWrites
Definition: winioctl.h:775
ULONG SuccessfulCreates
Definition: winioctl.h:768
ULONG FailedCreates
Definition: winioctl.h:769
ULONG NonCachedReads
Definition: winioctl.h:770
ULONG NonCachedDiskReads
Definition: winioctl.h:774
ULONG NonCachedWrites
Definition: winioctl.h:772
ULONG NonCachedReadBytes
Definition: winioctl.h:771
ULONG SuccessfulCreates
Definition: winioctl.h:756
ULONG CreateHits
Definition: winioctl.h:755
ULONG NonCachedReadBytes
Definition: winioctl.h:759
ULONG NonCachedDiskWrites
Definition: winioctl.h:763
ULONG FailedCreates
Definition: winioctl.h:757
ULONG NonCachedWriteBytes
Definition: winioctl.h:761
ULONG NonCachedReads
Definition: winioctl.h:758
ULONG NonCachedDiskReads
Definition: winioctl.h:762
ULONG NonCachedWrites
Definition: winioctl.h:760
ULONG SizeOfCompleteStructure
Definition: winioctl.h:735
MEDIA_TYPE MediaType
Definition: ntdddisk.h:621
USHORT SectorNumber[1]
Definition: ntdddisk.h:628
MEDIA_TYPE MediaType
Definition: ntdddisk.h:632
DWORD EndCylinderNumber
Definition: winioctl.h:545
DWORD StartHeadNumber
Definition: winioctl.h:546
DWORD StartCylinderNumber
Definition: winioctl.h:544
ULONG UserIndexReads
Definition: winioctl.h:834
ULONG RootIndexReadBytes
Definition: winioctl.h:806
ULONG UserIndexWrites
Definition: winioctl.h:836
ULONG Mft2WriteBytes
Definition: winioctl.h:795
ULONG MftBitmapReadBytes
Definition: winioctl.h:822
struct _NTFS_STATISTICS::@3308 Allocate
ULONG CacheMissClusters
Definition: winioctl.h:852
ULONG RootIndexWrites
Definition: winioctl.h:807
USHORT MftWritesLazyWriter
Definition: winioctl.h:792
struct _NTFS_STATISTICS::@3305 Mft2WritesUserLevel
ULONG MftBitmapReads
Definition: winioctl.h:821
USHORT SetInfo
Definition: winioctl.h:788
USHORT Mft2WritesFlushForLogFileFull
Definition: winioctl.h:802
ULONG RunsReturned
Definition: winioctl.h:846
ULONG CacheClusters
Definition: winioctl.h:850
USHORT Mft2WritesUserRequest
Definition: winioctl.h:804
ULONG LogFileReadBytes
Definition: winioctl.h:839
USHORT BitmapWritesUserRequest
Definition: winioctl.h:815
ULONG RootIndexWriteBytes
Definition: winioctl.h:808
ULONG LogFileWrites
Definition: winioctl.h:840
struct _NTFS_STATISTICS::@3304 MftWritesUserLevel
ULONG RootIndexReads
Definition: winioctl.h:805
USHORT BitmapWritesFlushForLogFileFull
Definition: winioctl.h:813
USHORT MftWritesUserRequest
Definition: winioctl.h:793
ULONG BitmapReadBytes
Definition: winioctl.h:810
ULONG BitmapWriteBytes
Definition: winioctl.h:812
ULONG HintsClusters
Definition: winioctl.h:848
ULONG MftBitmapWrites
Definition: winioctl.h:823
ULONG OtherExceptions
Definition: winioctl.h:780
ULONG UserIndexReadBytes
Definition: winioctl.h:835
ULONG UserIndexWriteBytes
Definition: winioctl.h:837
ULONG LogFileFullExceptions
Definition: winioctl.h:779
ULONG LogFileReads
Definition: winioctl.h:838
ULONG Mft2Writes
Definition: winioctl.h:794
ULONG HintsHonored
Definition: winioctl.h:847
ULONG MftWriteBytes
Definition: winioctl.h:784
ULONG LogFileWriteBytes
Definition: winioctl.h:841
ULONG MftReadBytes
Definition: winioctl.h:782
USHORT MftBitmapWritesFlushForLogFileFull
Definition: winioctl.h:825
ULONG BitmapReads
Definition: winioctl.h:809
struct _NTFS_STATISTICS::@3306 BitmapWritesUserLevel
ULONG MftBitmapWriteBytes
Definition: winioctl.h:824
ULONG BitmapWrites
Definition: winioctl.h:811
USHORT MftBitmapWritesUserRequest
Definition: winioctl.h:827
USHORT BitmapWritesLazyWriter
Definition: winioctl.h:814
USHORT MftBitmapWritesLazyWriter
Definition: winioctl.h:826
USHORT MftWritesFlushForLogFileFull
Definition: winioctl.h:791
struct _NTFS_STATISTICS::@3307 MftBitmapWritesUserLevel
USHORT Mft2WritesLazyWriter
Definition: winioctl.h:803
LARGE_INTEGER StartingOffset
Definition: imports.h:221
PARTITION_STYLE PartitionStyle
Definition: imports.h:220
PARTITION_INFORMATION_MBR Mbr
Definition: imports.h:226
PARTITION_INFORMATION_GPT Gpt
Definition: imports.h:227
LARGE_INTEGER PartitionLength
Definition: imports.h:222
LARGE_INTEGER StartingOffset
Definition: ntdddisk.h:413
LARGE_INTEGER PartitionLength
Definition: ntdddisk.h:414
BOOLEAN RecognizedPartition
Definition: ntdddisk.h:419
BOOLEAN RewritePartition
Definition: ntdddisk.h:420
DWORD NumberOfBins
Definition: winioctl.h:595
BIN_RANGE BinsRanges[1]
Definition: winioctl.h:597
DWORD TypeOfBin
Definition: winioctl.h:596
BOOLEAN PreventMediaRemoval
Definition: ntddstor.h:343
ULONG BlockNumber[1]
Definition: ntdddisk.h:646
LARGE_INTEGER StartingOffset
Definition: ntdddisk.h:656
DISK_EXTENT Extents[1]
Definition: ntddvol.h:120
DWORD NumberOfDiskExtents
Definition: winioctl.h:585
uint64_t DWORD64
Definition: typedefs.h:67
int64_t LONGLONG
Definition: typedefs.h:68
_In_ ULONG _In_ ULONG SectorsPerTrack
Definition: iofuncs.h:2071
unsigned char UCHAR
Definition: xmlstorage.h:181
__wchar_t WCHAR
Definition: xmlstorage.h:180
unsigned char BYTE
Definition: xxhash.c:193