ReactOS 0.4.15-dev-8227-g32d615f
winioctl.h
Go to the documentation of this file.
1/*
2 * winioctl.h
3 *
4 * 32-Bit Windows Device I/O control codes.
5 * Definitions extracted from various NT DDK headers.
6 *
7 * This file is part of the w32api package.
8 *
9 * Contributors:
10 * Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
11 * Amine Khaldi <amine.khaldi@reactos.org>
12 * Pierre Schweitzer <pierre@reactos.org>
13 * Hermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
14 *
15 * THIS SOFTWARE IS NOT COPYRIGHTED
16 *
17 * This source code is offered for use in the public domain. You may
18 * use, modify or distribute it freely.
19 *
20 * This code is distributed in the hope that it will be useful but
21 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
22 * DISCLAIMED. This includes but is not limited to warranties of
23 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
24 *
25 */
26
27#ifndef _WINIOCTL_
28#define _WINIOCTL_
29
30#ifdef __cplusplus
31extern "C" {
32#endif
33
34#ifdef _MSC_VER
35#pragma warning(push)
36#pragma warning(disable:4201)
37#pragma warning(disable:4820)
38#endif
39
40
41#ifndef _DEVIOCTL_
42#define _DEVIOCTL_
43
44#define DEVICE_TYPE DWORD
45
46#define FILE_DEVICE_BEEP 1
47#define FILE_DEVICE_CD_ROM 2
48#define FILE_DEVICE_CD_ROM_FILE_SYSTEM 3
49#define FILE_DEVICE_CONTROLLER 4
50#define FILE_DEVICE_DATALINK 5
51#define FILE_DEVICE_DFS 6
52#define FILE_DEVICE_DISK 7
53#define FILE_DEVICE_DISK_FILE_SYSTEM 8
54#define FILE_DEVICE_FILE_SYSTEM 9
55#define FILE_DEVICE_INPORT_PORT 10
56#define FILE_DEVICE_KEYBOARD 11
57#define FILE_DEVICE_MAILSLOT 12
58#define FILE_DEVICE_MIDI_IN 13
59#define FILE_DEVICE_MIDI_OUT 14
60#define FILE_DEVICE_MOUSE 15
61#define FILE_DEVICE_MULTI_UNC_PROVIDER 16
62#define FILE_DEVICE_NAMED_PIPE 17
63#define FILE_DEVICE_NETWORK 18
64#define FILE_DEVICE_NETWORK_BROWSER 19
65#define FILE_DEVICE_NETWORK_FILE_SYSTEM 20
66#define FILE_DEVICE_NULL 21
67#define FILE_DEVICE_PARALLEL_PORT 22
68#define FILE_DEVICE_PHYSICAL_NETCARD 23
69#define FILE_DEVICE_PRINTER 24
70#define FILE_DEVICE_SCANNER 25
71#define FILE_DEVICE_SERIAL_MOUSE_PORT 26
72#define FILE_DEVICE_SERIAL_PORT 27
73#define FILE_DEVICE_SCREEN 28
74#define FILE_DEVICE_SOUND 29
75#define FILE_DEVICE_STREAMS 30
76#define FILE_DEVICE_TAPE 31
77#define FILE_DEVICE_TAPE_FILE_SYSTEM 32
78#define FILE_DEVICE_TRANSPORT 33
79#define FILE_DEVICE_UNKNOWN 34
80#define FILE_DEVICE_VIDEO 35
81#define FILE_DEVICE_VIRTUAL_DISK 36
82#define FILE_DEVICE_WAVE_IN 37
83#define FILE_DEVICE_WAVE_OUT 38
84#define FILE_DEVICE_8042_PORT 39
85#define FILE_DEVICE_NETWORK_REDIRECTOR 40
86#define FILE_DEVICE_BATTERY 41
87#define FILE_DEVICE_BUS_EXTENDER 42
88#define FILE_DEVICE_MODEM 43
89#define FILE_DEVICE_VDM 44
90#define FILE_DEVICE_MASS_STORAGE 45
91#define FILE_DEVICE_SMB 46
92#define FILE_DEVICE_KS 47
93#define FILE_DEVICE_CHANGER 48
94#define FILE_DEVICE_SMARTCARD 49
95#define FILE_DEVICE_ACPI 50
96#define FILE_DEVICE_DVD 51
97#define FILE_DEVICE_FULLSCREEN_VIDEO 52
98#define FILE_DEVICE_DFS_FILE_SYSTEM 53
99#define FILE_DEVICE_DFS_VOLUME 54
100#define FILE_DEVICE_SERENUM 55
101#define FILE_DEVICE_TERMSRV 56
102#define FILE_DEVICE_KSEC 57
103#define FILE_DEVICE_FIPS 58
104#define FILE_DEVICE_INFINIBAND 59
105#define FILE_DEVICE_VMBUS 62
106#define FILE_DEVICE_CRYPT_PROVIDER 63
107#define FILE_DEVICE_WPD 64
108#define FILE_DEVICE_BLUETOOTH 65
109#define FILE_DEVICE_MT_COMPOSITE 66
110#define FILE_DEVICE_MT_TRANSPORT 67
111#define FILE_DEVICE_BIOMETRIC 68
112#define FILE_DEVICE_PMI 69
113#define FILE_DEVICE_EHSTOR 70
114#define FILE_DEVICE_DEVAPI 71
115#define FILE_DEVICE_GPIO 72
116#define FILE_DEVICE_USBEX 73
117#define FILE_DEVICE_CONSOLE 80
118#define FILE_DEVICE_NFP 81
119#define FILE_DEVICE_SYSENV 82
120#define FILE_DEVICE_VIRTUAL_BLOCK 83
121#define FILE_DEVICE_POINT_OF_SERVICE 84
122#define FILE_DEVICE_STORAGE_REPLICATION 85
123#define FILE_DEVICE_TRUST_ENV 86
124#define FILE_DEVICE_UCM 87
125#define FILE_DEVICE_UCMTCPCI 88
126#define FILE_DEVICE_PERSISTENT_MEMORY 89
127#define FILE_DEVICE_NVDIMM 90
128#define FILE_DEVICE_HOLOGRAPHIC 91
129#define FILE_DEVICE_SDFXHCI 92
130#define FILE_DEVICE_UCMUCSI 93
131
132/* Also in ddk/winddk.h */
133#define FILE_ANY_ACCESS 0x00000000
134#define FILE_SPECIAL_ACCESS FILE_ANY_ACCESS
135#define FILE_READ_ACCESS 0x00000001
136#define FILE_WRITE_ACCESS 0x00000002
137
138#define METHOD_BUFFERED 0
139#define METHOD_IN_DIRECT 1
140#define METHOD_OUT_DIRECT 2
141#define METHOD_NEITHER 3
142
143#define CTL_CODE(t,f,m,a) (((t)<<16)|((a)<<14)|((f)<<2)|(m))
144#define DEVICE_TYPE_FROM_CTL_CODE(c) (((DWORD)((c)&0xffff0000))>>16)
145
146#endif /* _DEVIOCTL_ */
147
148#ifndef _NTDDSTOR_H_
149// #define _NTDDSTOR_H_
150
151#define IOCTL_STORAGE_BASE FILE_DEVICE_MASS_STORAGE
152#define IOCTL_STORAGE_CHECK_VERIFY CTL_CODE(IOCTL_STORAGE_BASE, 0x0200, METHOD_BUFFERED, FILE_READ_ACCESS)
153#define IOCTL_STORAGE_CHECK_VERIFY2 CTL_CODE(IOCTL_STORAGE_BASE, 0x0200, METHOD_BUFFERED, FILE_ANY_ACCESS)
154#define IOCTL_STORAGE_MEDIA_REMOVAL CTL_CODE(IOCTL_STORAGE_BASE, 0x0201, METHOD_BUFFERED, FILE_READ_ACCESS)
155#define IOCTL_STORAGE_EJECT_MEDIA CTL_CODE(IOCTL_STORAGE_BASE, 0x0202, METHOD_BUFFERED, FILE_READ_ACCESS)
156#define IOCTL_STORAGE_LOAD_MEDIA CTL_CODE(IOCTL_STORAGE_BASE, 0x0203, METHOD_BUFFERED, FILE_READ_ACCESS)
157#define IOCTL_STORAGE_LOAD_MEDIA2 CTL_CODE(IOCTL_STORAGE_BASE, 0x0203, METHOD_BUFFERED, FILE_ANY_ACCESS)
158#define IOCTL_STORAGE_RESERVE CTL_CODE(IOCTL_STORAGE_BASE, 0x0204, METHOD_BUFFERED, FILE_READ_ACCESS)
159#define IOCTL_STORAGE_RELEASE CTL_CODE(IOCTL_STORAGE_BASE, 0x0205, METHOD_BUFFERED, FILE_READ_ACCESS)
160#define IOCTL_STORAGE_FIND_NEW_DEVICES CTL_CODE(IOCTL_STORAGE_BASE, 0x0206, METHOD_BUFFERED, FILE_READ_ACCESS)
161#define IOCTL_STORAGE_EJECTION_CONTROL CTL_CODE(IOCTL_STORAGE_BASE, 0x0250, METHOD_BUFFERED, FILE_ANY_ACCESS)
162#define IOCTL_STORAGE_MCN_CONTROL CTL_CODE(IOCTL_STORAGE_BASE, 0x0251, METHOD_BUFFERED, FILE_ANY_ACCESS)
163#define IOCTL_STORAGE_GET_MEDIA_TYPES CTL_CODE(IOCTL_STORAGE_BASE, 0x0300, METHOD_BUFFERED, FILE_ANY_ACCESS)
164#define IOCTL_STORAGE_GET_MEDIA_TYPES_EX CTL_CODE(IOCTL_STORAGE_BASE, 0x0301, METHOD_BUFFERED, FILE_ANY_ACCESS)
165#define IOCTL_STORAGE_RESET_BUS CTL_CODE(IOCTL_STORAGE_BASE, 0x0400, METHOD_BUFFERED, FILE_READ_ACCESS)
166#define IOCTL_STORAGE_RESET_DEVICE CTL_CODE(IOCTL_STORAGE_BASE, 0x0401, METHOD_BUFFERED, FILE_READ_ACCESS)
167#define IOCTL_STORAGE_GET_DEVICE_NUMBER CTL_CODE(IOCTL_STORAGE_BASE, 0x0420, METHOD_BUFFERED, FILE_ANY_ACCESS)
168#define IOCTL_STORAGE_PREDICT_FAILURE CTL_CODE(IOCTL_STORAGE_BASE, 0x0440, METHOD_BUFFERED, FILE_ANY_ACCESS)
169
170typedef struct _PREVENT_MEDIA_REMOVAL {
173
174#endif /* _NTDDSTOR_H_ */
175
176#ifndef _NTDDDISK_H_
177// #define _NTDDDISK_H_
178
179#define IOCTL_DISK_BASE FILE_DEVICE_DISK
180#define IOCTL_DISK_GET_DRIVE_GEOMETRY CTL_CODE(IOCTL_DISK_BASE,0,METHOD_BUFFERED, FILE_ANY_ACCESS)
181#define IOCTL_DISK_GET_PARTITION_INFO CTL_CODE(IOCTL_DISK_BASE,1,METHOD_BUFFERED,FILE_READ_ACCESS)
182#define IOCTL_DISK_SET_PARTITION_INFO CTL_CODE(IOCTL_DISK_BASE,2,METHOD_BUFFERED,FILE_READ_ACCESS|FILE_WRITE_ACCESS)
183#define IOCTL_DISK_GET_DRIVE_LAYOUT CTL_CODE(IOCTL_DISK_BASE,3,METHOD_BUFFERED,FILE_READ_ACCESS)
184#define IOCTL_DISK_SET_DRIVE_LAYOUT CTL_CODE(IOCTL_DISK_BASE,4,METHOD_BUFFERED,FILE_READ_ACCESS|FILE_WRITE_ACCESS)
185#define IOCTL_DISK_VERIFY CTL_CODE(IOCTL_DISK_BASE,5,METHOD_BUFFERED,FILE_ANY_ACCESS)
186#define IOCTL_DISK_FORMAT_TRACKS CTL_CODE(IOCTL_DISK_BASE,6,METHOD_BUFFERED,FILE_READ_ACCESS|FILE_WRITE_ACCESS)
187#define IOCTL_DISK_REASSIGN_BLOCKS CTL_CODE(IOCTL_DISK_BASE,7,METHOD_BUFFERED,FILE_READ_ACCESS|FILE_WRITE_ACCESS)
188#define IOCTL_DISK_PERFORMANCE CTL_CODE(IOCTL_DISK_BASE,8,METHOD_BUFFERED,FILE_ANY_ACCESS)
189#define IOCTL_DISK_IS_WRITABLE CTL_CODE(IOCTL_DISK_BASE,9,METHOD_BUFFERED,FILE_ANY_ACCESS)
190#define IOCTL_DISK_LOGGING CTL_CODE(IOCTL_DISK_BASE,10,METHOD_BUFFERED,FILE_ANY_ACCESS)
191#define IOCTL_DISK_FORMAT_TRACKS_EX CTL_CODE(IOCTL_DISK_BASE,11,METHOD_BUFFERED,FILE_READ_ACCESS|FILE_WRITE_ACCESS)
192#define IOCTL_DISK_HISTOGRAM_STRUCTURE CTL_CODE(IOCTL_DISK_BASE,12,METHOD_BUFFERED,FILE_ANY_ACCESS)
193#define IOCTL_DISK_HISTOGRAM_DATA CTL_CODE(IOCTL_DISK_BASE,13,METHOD_BUFFERED,FILE_ANY_ACCESS)
194#define IOCTL_DISK_HISTOGRAM_RESET CTL_CODE(IOCTL_DISK_BASE,14,METHOD_BUFFERED,FILE_ANY_ACCESS)
195#define IOCTL_DISK_REQUEST_STRUCTURE CTL_CODE(IOCTL_DISK_BASE,15,METHOD_BUFFERED,FILE_ANY_ACCESS)
196#define IOCTL_DISK_REQUEST_DATA CTL_CODE(IOCTL_DISK_BASE,16,METHOD_BUFFERED,FILE_ANY_ACCESS)
197#define IOCTL_DISK_GET_PARTITION_INFO_EX CTL_CODE(IOCTL_DISK_BASE,0x12,METHOD_BUFFERED,FILE_ANY_ACCESS)
198#define IOCTL_DISK_SET_PARTITION_INFO_EX CTL_CODE(IOCTL_DISK_BASE,0x13,METHOD_BUFFERED,FILE_READ_ACCESS | FILE_WRITE_ACCESS)
199#define IOCTL_DISK_GET_DRIVE_LAYOUT_EX CTL_CODE(IOCTL_DISK_BASE,0x14,METHOD_BUFFERED,FILE_ANY_ACCESS)
200#define IOCTL_DISK_SET_DRIVE_LAYOUT_EX CTL_CODE(IOCTL_DISK_BASE,0x15,METHOD_BUFFERED,FILE_READ_ACCESS | FILE_WRITE_ACCESS)
201#define IOCTL_DISK_CREATE_DISK CTL_CODE(IOCTL_DISK_BASE,0x16,METHOD_BUFFERED,FILE_READ_ACCESS | FILE_WRITE_ACCESS)
202#define IOCTL_DISK_GET_LENGTH_INFO CTL_CODE(IOCTL_DISK_BASE,0x17,METHOD_BUFFERED,FILE_READ_ACCESS)
203#define IOCTL_DISK_PERFORMANCE_OFF CTL_CODE(IOCTL_DISK_BASE,0x18,METHOD_BUFFERED,FILE_ANY_ACCESS)
204#define IOCTL_DISK_GET_DRIVE_GEOMETRY_EX CTL_CODE(IOCTL_DISK_BASE,0x28,METHOD_BUFFERED,FILE_ANY_ACCESS)
205#define IOCTL_DISK_GROW_PARTITION CTL_CODE(IOCTL_DISK_BASE,0x34,METHOD_BUFFERED,FILE_READ_ACCESS | FILE_WRITE_ACCESS)
206#define IOCTL_DISK_GET_CACHE_INFORMATION CTL_CODE(IOCTL_DISK_BASE,0x35,METHOD_BUFFERED,FILE_READ_ACCESS)
207#define IOCTL_DISK_SET_CACHE_INFORMATION CTL_CODE(IOCTL_DISK_BASE,0x36,METHOD_BUFFERED,FILE_READ_ACCESS | FILE_WRITE_ACCESS)
208#define IOCTL_DISK_DELETE_DRIVE_LAYOUT CTL_CODE(IOCTL_DISK_BASE,0x40,METHOD_BUFFERED,FILE_READ_ACCESS | FILE_WRITE_ACCESS)
209#define IOCTL_DISK_UPDATE_PROPERTIES CTL_CODE(IOCTL_DISK_BASE,0x50,METHOD_BUFFERED,FILE_ANY_ACCESS)
210#define IOCTL_DISK_CHECK_VERIFY CTL_CODE(IOCTL_DISK_BASE,0x200,METHOD_BUFFERED,FILE_READ_ACCESS)
211#define IOCTL_DISK_MEDIA_REMOVAL CTL_CODE(IOCTL_DISK_BASE,0x201,METHOD_BUFFERED,FILE_READ_ACCESS)
212#define IOCTL_DISK_EJECT_MEDIA CTL_CODE(IOCTL_DISK_BASE,0x202,METHOD_BUFFERED,FILE_READ_ACCESS)
213#define IOCTL_DISK_LOAD_MEDIA CTL_CODE(IOCTL_DISK_BASE,0x203,METHOD_BUFFERED,FILE_READ_ACCESS)
214#define IOCTL_DISK_RESERVE CTL_CODE(IOCTL_DISK_BASE,0x204,METHOD_BUFFERED,FILE_READ_ACCESS)
215#define IOCTL_DISK_RELEASE CTL_CODE(IOCTL_DISK_BASE,0x205,METHOD_BUFFERED,FILE_READ_ACCESS)
216#define IOCTL_DISK_FIND_NEW_DEVICES CTL_CODE(IOCTL_DISK_BASE,0x206,METHOD_BUFFERED,FILE_READ_ACCESS)
217#define IOCTL_DISK_REMOVE_DEVICE CTL_CODE(IOCTL_DISK_BASE,0x207,METHOD_BUFFERED,FILE_READ_ACCESS)
218#define IOCTL_DISK_GET_MEDIA_TYPES CTL_CODE(IOCTL_DISK_BASE,0x300,METHOD_BUFFERED,FILE_ANY_ACCESS)
219#define IOCTL_DISK_UPDATE_DRIVE_SIZE CTL_CODE(IOCTL_DISK_BASE, 0x0032, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
220
221
222#define PARTITION_ENTRY_UNUSED 0
223#define PARTITION_FAT_12 1
224#define PARTITION_XENIX_1 2
225#define PARTITION_XENIX_2 3
226#define PARTITION_FAT_16 4
227#define PARTITION_EXTENDED 5
228#define PARTITION_HUGE 6
229#define PARTITION_IFS 7
230#define PARTITION_FAT32 0x0B
231#define PARTITION_FAT32_XINT13 0x0C
232#define PARTITION_XINT13 0x0E
233#define PARTITION_XINT13_EXTENDED 0x0F
234#define PARTITION_PREP 0x41
235#define PARTITION_LDM 0x42
236#define PARTITION_UNIX 0x63
237#define PARTITION_NTFT 0x80
238#define VALID_NTFT 0xC0
239#ifdef __REACTOS__
240#define PARTITION_OLD_LINUX 0x43
241#define PARTITION_LINUX 0x83
242#define PARTITION_FREEBSD 0xA5
243#define PARTITION_OPENBSD 0xA6
244#define PARTITION_NETBSD 0xA9
245#endif
246
247#ifdef __REACTOS__
248#define IsRecognizedPartition(t)\
249 (((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_FAT_12))||\
250 ((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_FAT_16))||\
251 ((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_HUGE))||\
252 ((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_IFS))||\
253 ((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_FAT32))||\
254 ((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_FAT32_XINT13))||\
255 ((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_XINT13))||\
256 ((t)==PARTITION_FAT_12)||\
257 ((t)==PARTITION_FAT_16)||\
258 ((t)==PARTITION_HUGE)||\
259 ((t)==PARTITION_IFS)||\
260 ((t)==PARTITION_FAT32)||\
261 ((t)==PARTITION_FAT32_XINT13)||\
262 ((t)==PARTITION_XINT13)||\
263 ((t)==PARTITION_LINUX)||\
264 ((t)==PARTITION_OLD_LINUX)||\
265 ((t)==PARTITION_FREEBSD)||\
266 ((t)==PARTITION_OPENBSD)||\
267 ((t)==PARTITION_NETBSD))
268#else
269#define IsRecognizedPartition(t)\
270 (((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_FAT_12))||\
271 ((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_FAT_16))||\
272 ((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_HUGE))||\
273 ((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_IFS))||\
274 ((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_FAT32))||\
275 ((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_FAT32_XINT13))||\
276 ((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_XINT13))||\
277 ((t)==PARTITION_FAT_12)||\
278 ((t)==PARTITION_FAT_16)||\
279 ((t)==PARTITION_HUGE)||\
280 ((t)==PARTITION_IFS)||\
281 ((t)==PARTITION_FAT32)||\
282 ((t)==PARTITION_FAT32_XINT13)||\
283 ((t)==PARTITION_XINT13))
284#endif
285
286#define IsContainerPartition(t)\
287 (((t)==PARTITION_EXTENDED)||\
288 ((t)==PARTITION_XINT13_EXTENDED))
289
290#define IsFTPartition(t)\
291 (((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_FAT_12))||\
292 ((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_FAT_16))||\
293 ((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_HUGE))||\
294 ((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_IFS))||\
295 ((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_FAT32))||\
296 ((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_FAT32_XINT13))||\
297 ((t&PARTITION_NTFT)&&((t&~VALID_NTFT)==PARTITION_XINT13)))
298
299
300#define DISK_LOGGING_START 0
301#define DISK_LOGGING_STOP 1
302#define DISK_LOGGING_DUMP 2
303#define DISK_BINNING 3
305typedef enum _BIN_TYPES {
309typedef struct _BIN_RANGE {
313typedef struct _BIN_COUNT {
317typedef struct _BIN_RESULTS {
321
322typedef enum _MEDIA_TYPE {
350
351typedef struct _DISK_GEOMETRY {
358typedef struct _PARTITION_INFORMATION {
368typedef struct _DRIVE_LAYOUT_INFORMATION {
373typedef struct _SET_PARTITION_INFORMATION {
376
377#if (_WIN32_WINNT >= 0x0500)
378/* Actually it should be > 0x0500, since this is not present in Windows 2000;
379 * however we keep >= 0x0500 for compatibility with MS PSDK. */
380
381typedef enum _PARTITION_STYLE {
384 PARTITION_STYLE_RAW
386
387typedef struct _CREATE_DISK_GPT {
388 GUID DiskId;
389 DWORD MaxPartitionCount;
390} CREATE_DISK_GPT, *PCREATE_DISK_GPT;
391typedef struct _CREATE_DISK_MBR {
393} CREATE_DISK_MBR, *PCREATE_DISK_MBR;
394typedef struct _CREATE_DISK {
395 PARTITION_STYLE PartitionStyle;
396 _ANONYMOUS_UNION union {
397 CREATE_DISK_MBR Mbr;
398 CREATE_DISK_GPT Gpt;
399 };
400} CREATE_DISK, *PCREATE_DISK;
401
402typedef enum _DETECTION_TYPE {
403 DetectNone,
404 DetectInt13,
405 DetectExInt13
406} DETECTION_TYPE;
407typedef struct _DISK_INT13_INFO {
408 WORD DriveSelect;
409 DWORD MaxCylinders;
411 WORD MaxHeads;
412 WORD NumberDrives;
413} DISK_INT13_INFO, *PDISK_INT13_INFO;
414typedef struct _DISK_EX_INT13_INFO {
415 WORD ExBufferSize;
416 WORD ExFlags;
417 DWORD ExCylinders;
418 DWORD ExHeads;
419 DWORD ExSectorsPerTrack;
420 DWORD64 ExSectorsPerDrive;
421 WORD ExSectorSize;
422 WORD ExReserved;
423} DISK_EX_INT13_INFO, *PDISK_EX_INT13_INFO;
424typedef struct _DISK_DETECTION_INFO {
425 DWORD SizeOfDetectInfo;
426 DETECTION_TYPE DetectionType;
427 _ANONYMOUS_UNION union {
428 _ANONYMOUS_STRUCT struct {
429 DISK_INT13_INFO Int13;
430 DISK_EX_INT13_INFO ExInt13;
431 };
432 };
433} DISK_DETECTION_INFO, *PDISK_DETECTION_INFO;
434typedef struct _DISK_PARTITION_INFO {
435 DWORD SizeOfPartitionInfo;
436 PARTITION_STYLE PartitionStyle;
437 _ANONYMOUS_UNION union {
438 struct {
440 DWORD CheckSum;
441 } Mbr;
442 struct {
443 GUID DiskId;
444 } Gpt;
445 };
446} DISK_PARTITION_INFO, *PDISK_PARTITION_INFO;
447typedef struct _DISK_GEOMETRY_EX {
450 BYTE Data[1];
452
453#if (NTDDI_VERSION < NTDDI_WS03)
454#define DiskGeometryGetPartition(Geometry) \
455 ((PDISK_PARTITION_INFO)((Geometry) + 1))
456
457#define DiskGeometryGetDetect(Geometry)\
458 ((PDISK_DETECTION_INFO)(((PBYTE)DiskGeometryGetPartition(Geometry) + \
459 DiskGeometryGetPartition(Geometry)->SizeOfPartitionInfo)))
460#else
461#define DiskGeometryGetPartition(Geometry) \
462 ((PDISK_PARTITION_INFO)((Geometry)->Data))
463
464#define DiskGeometryGetDetect(Geometry)\
465 ((PDISK_DETECTION_INFO)(((ULONG_PTR)DiskGeometryGetPartition(Geometry) + \
466 DiskGeometryGetPartition(Geometry)->SizeOfPartitionInfo)))
467#endif
468
469typedef struct _PARTITION_INFORMATION_GPT {
473 WCHAR Name[36];
475typedef struct _PARTITION_INFORMATION_MBR {
481typedef struct _PARTITION_INFORMATION_EX {
487#if (NTDDI_VERSION >= NTDDI_WIN10_RS3)
488 BOOLEAN IsServicePartition;
489#endif
490 _ANONYMOUS_UNION union {
493 };
495
496typedef struct _DRIVE_LAYOUT_INFORMATION_GPT {
497 GUID DiskId;
498 LARGE_INTEGER StartingUsableOffset;
499 LARGE_INTEGER UsableLength;
500 DWORD MaxPartitionCount;
501} DRIVE_LAYOUT_INFORMATION_GPT, *PDRIVE_LAYOUT_INFORMATION_GPT;
502typedef struct _DRIVE_LAYOUT_INFORMATION_MBR {
504#if (NTDDI_VERSION >= NTDDI_WIN10_RS1)
505 DWORD CheckSum;
506#endif
507} DRIVE_LAYOUT_INFORMATION_MBR, *PDRIVE_LAYOUT_INFORMATION_MBR;
508typedef struct _DRIVE_LAYOUT_INFORMATION_EX {
509 DWORD PartitionStyle;
510 DWORD PartitionCount;
511 _ANONYMOUS_UNION union {
512 DRIVE_LAYOUT_INFORMATION_MBR Mbr;
513 DRIVE_LAYOUT_INFORMATION_GPT Gpt;
514 };
515 PARTITION_INFORMATION_EX PartitionEntry[1];
516} DRIVE_LAYOUT_INFORMATION_EX, *PDRIVE_LAYOUT_INFORMATION_EX;
517
518typedef SET_PARTITION_INFORMATION SET_PARTITION_INFORMATION_MBR;
519typedef PARTITION_INFORMATION_GPT SET_PARTITION_INFORMATION_GPT;
520
521typedef struct _SET_PARTITION_INFORMATION_EX {
522 PARTITION_STYLE PartitionStyle;
523 _ANONYMOUS_UNION union {
524 SET_PARTITION_INFORMATION_MBR Mbr;
525 SET_PARTITION_INFORMATION_GPT Gpt;
527} SET_PARTITION_INFORMATION_EX, *PSET_PARTITION_INFORMATION_EX;
528
529#endif // (_WIN32_WINNT >= 0x0500)
530
531typedef struct _DISK_GROW_PARTITION {
535typedef enum {
548 _ANONYMOUS_UNION union {
549 struct {
554 struct {
558 };
560
561typedef struct _DISK_PERFORMANCE {
575typedef struct _DISK_RECORD {
584typedef struct _DISK_LOGGING {
594
595typedef struct _FORMAT_PARAMETERS {
602typedef struct _FORMAT_EX_PARAMETERS {
612
613typedef struct _GET_LENGTH_INFORMATION {
616
617#define HIST_NO_OF_BUCKETS 24
618#define HISTOGRAM_BUCKET_SIZE sizeof(HISTOGRAM_BUCKET)
619#define DISK_HISTOGRAM_SIZE sizeof(DISK_HISTOGRAM)
620
621typedef struct _HISTOGRAM_BUCKET {
625typedef struct _DISK_HISTOGRAM {
638
639typedef struct _PERF_BIN {
644
645typedef struct _VERIFY_INFORMATION {
649
650typedef struct _REASSIGN_BLOCKS {
655
656#endif /* _NTDDDISK_H_ */
657
658// #ifndef _NTDDSER_
659// #define _NTDDSER_
660
661/* Device GUIDs */
662#ifdef DEFINE_GUID
663
664DEFINE_GUID(GUID_DEVINTERFACE_COMPORT, 0x86E0D1E0L, 0x8089,
665 0x11D0, 0x9C, 0xE4, 0x08, 0x00, 0x3E, 0x30, 0x1F, 0x73);
666DEFINE_GUID(GUID_DEVINTERFACE_SERENUM_BUS_ENUMERATOR, 0x4D36E978L, 0xE325,
667 0x11CE, 0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18);
668
669/* obsolete GUID names */
670#define GUID_CLASS_COMPORT GUID_DEVINTERFACE_COMPORT
671#define GUID_SERENUM_BUS_ENUMERATOR GUID_DEVINTERFACE_SERENUM_BUS_ENUMERATOR
672
673#endif /* DEFINE_GUID */
674
675#define IOCTL_SERIAL_LSRMST_INSERT CTL_CODE(FILE_DEVICE_SERIAL_PORT,31,METHOD_BUFFERED,FILE_ANY_ACCESS)
676
677#define SERIAL_LSRMST_ESCAPE 0
678#define SERIAL_LSRMST_LSR_DATA 1
679#define SERIAL_LSRMST_LSR_NODATA 2
680#define SERIAL_LSRMST_MST 3
681
682// #endif /* _NTDDSER_ */
683
684// #ifndef _NTDDVOL_
685// #define _NTDDVOL_
686
687#define IOCTL_VOLUME_BASE ((DWORD)'V')
688
689#if (NTDDI_VERSION >= NTDDI_WIN2K)
690#define IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS CTL_CODE(IOCTL_VOLUME_BASE, 0, METHOD_BUFFERED, FILE_ANY_ACCESS)
691
692typedef struct _DISK_EXTENT {
697typedef struct _VOLUME_DISK_EXTENTS {
701
702#define IOCTL_VOLUME_ONLINE CTL_CODE(IOCTL_VOLUME_BASE, 2, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
703#define IOCTL_VOLUME_OFFLINE CTL_CODE(IOCTL_VOLUME_BASE, 3, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
704#endif /* (NTDDI_VERSION >= NTDDI_WIN2K) */
705
706#if (NTDDI_VERSION >= NTDDI_WINXP)
707#define IOCTL_VOLUME_IS_CLUSTERED \
708 CTL_CODE(IOCTL_VOLUME_BASE, 12, METHOD_BUFFERED, FILE_ANY_ACCESS)
709#define IOCTL_VOLUME_GET_GPT_ATTRIBUTES \
710 CTL_CODE(IOCTL_VOLUME_BASE, 14, METHOD_BUFFERED, FILE_ANY_ACCESS)
711
715#endif /* (NTDDI_VERSION >= NTDDI_WINXP) */
716
717// #endif /* _NTDDVOL_ */
718
719#ifndef _FILESYSTEMFSCTL_
720#define _FILESYSTEMFSCTL_
721
722#define FSCTL_LOCK_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM,6,METHOD_BUFFERED,FILE_ANY_ACCESS)
723#define FSCTL_UNLOCK_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM,7,METHOD_BUFFERED,FILE_ANY_ACCESS)
724#define FSCTL_PIPE_IMPERSONATE CTL_CODE(FILE_DEVICE_NAMED_PIPE, 7, METHOD_BUFFERED, FILE_ANY_ACCESS)
725#define FSCTL_DISMOUNT_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM,8,METHOD_BUFFERED,FILE_ANY_ACCESS)
726#define FSCTL_MOUNT_DBLS_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM,13,METHOD_BUFFERED,FILE_ANY_ACCESS)
727#define FSCTL_GET_COMPRESSION CTL_CODE(FILE_DEVICE_FILE_SYSTEM,15,METHOD_BUFFERED,FILE_ANY_ACCESS)
728#define FSCTL_SET_COMPRESSION CTL_CODE(FILE_DEVICE_FILE_SYSTEM,16,METHOD_BUFFERED,FILE_READ_DATA|FILE_WRITE_DATA)
729#define FSCTL_READ_COMPRESSION CTL_CODE(FILE_DEVICE_FILE_SYSTEM,17,METHOD_NEITHER,FILE_READ_DATA)
730#define FSCTL_WRITE_COMPRESSION CTL_CODE(FILE_DEVICE_FILE_SYSTEM,18,METHOD_NEITHER,FILE_WRITE_DATA)
731#define FSCTL_GET_NTFS_VOLUME_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM,25,METHOD_BUFFERED,FILE_ANY_ACCESS)
732#define FSCTL_GET_NTFS_FILE_RECORD CTL_CODE(FILE_DEVICE_FILE_SYSTEM,26,METHOD_BUFFERED,FILE_ANY_ACCESS)
733#define FSCTL_GET_VOLUME_BITMAP CTL_CODE(FILE_DEVICE_FILE_SYSTEM,27,METHOD_NEITHER,FILE_ANY_ACCESS)
734#define FSCTL_GET_RETRIEVAL_POINTERS CTL_CODE(FILE_DEVICE_FILE_SYSTEM,28,METHOD_NEITHER,FILE_ANY_ACCESS)
735#define FSCTL_MOVE_FILE CTL_CODE(FILE_DEVICE_FILE_SYSTEM,29,METHOD_BUFFERED,FILE_ANY_ACCESS)
736#define FSCTL_GET_REPARSE_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 42, METHOD_BUFFERED, FILE_ANY_ACCESS)
737#define FSCTL_SET_REPARSE_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 41, METHOD_BUFFERED, FILE_ANY_ACCESS)
738#define FSCTL_DELETE_REPARSE_POINT CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 43, METHOD_BUFFERED, FILE_ANY_ACCESS)
739#define FSCTL_SET_SPARSE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 49, METHOD_BUFFERED, FILE_SPECIAL_ACCESS)
740
741#define FSCTL_MARK_VOLUME_DIRTY CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 12, METHOD_BUFFERED, FILE_ANY_ACCESS)
742#define FSCTL_FILESYSTEM_GET_STATISTICS CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 24, METHOD_BUFFERED, FILE_ANY_ACCESS)
743
744#if (_WIN32_WINNT >= _WIN32_WINNT_NT4)
745#define FSCTL_IS_VOLUME_DIRTY CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 30, METHOD_BUFFERED, FILE_ANY_ACCESS)
746#endif
747
748#if (_WIN32_WINNT >= _WIN32_WINNT_WIN8)
749#define FSCTL_GET_INTEGRITY_INFORMATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 159, METHOD_BUFFERED, FILE_ANY_ACCESS)
750#define FSCTL_SET_INTEGRITY_INFORMATION CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 160, METHOD_BUFFERED, FILE_READ_DATA | FILE_WRITE_DATA)
751#endif
752
753#if (_WIN32_WINNT >= _WIN32_WINNT_WINBLUE)
754#define FSCTL_DUPLICATE_EXTENTS_TO_FILE CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 209, METHOD_BUFFERED, FILE_WRITE_DATA)
755#endif
756
757#if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K)
758#define VOLUME_IS_DIRTY (0x00000001)
759#define VOLUME_UPGRADE_SCHEDULED (0x00000002)
760#define VOLUME_SESSION_OPEN (0x00000004)
761#endif
762
763
764typedef struct {
773 struct {
778typedef struct {
781typedef struct {
784typedef struct {
789typedef struct {
805typedef struct {
810typedef struct {
813typedef struct {
816 UCHAR FileRecordBuffer[1];
818
819
837
838#define FILESYSTEM_STATISTICS_TYPE_NTFS 1
839#define FILESYSTEM_STATISTICS_TYPE_FAT 2
840#define FILESYSTEM_STATISTICS_TYPE_EXFAT 3
841
842typedef struct _FAT_STATISTICS {
853
854typedef struct _EXFAT_STATISTICS {
865
866typedef struct _NTFS_STATISTICS {
873 struct {
884 struct {
904 struct {
916 struct {
930 struct {
943
944#if (_WIN32_WINNT >= _WIN32_WINNT_WIN8)
948 DWORD Flags;
952
956 DWORD Flags;
958#endif
959
960#if (_WIN32_WINNT >= _WIN32_WINNT_WINBLUE)
961typedef struct _DUPLICATE_EXTENTS_DATA {
967#endif
968
969#endif /* _FILESYSTEMFSCTL_ */
970
971
972#ifdef _MSC_VER
973#pragma warning(pop)
974#endif
975
976#ifdef __cplusplus
977}
978#endif
979#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 long long DWORDLONG
Definition: intsafe.h:93
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 _GET_LENGTH_INFORMATION * PGET_LENGTH_INFORMATION
struct NTFS_VOLUME_DATA_BUFFER * PNTFS_VOLUME_DATA_BUFFER
struct _FAT_STATISTICS * PFAT_STATISTICS
struct _FORMAT_EX_PARAMETERS * PFORMAT_EX_PARAMETERS
struct STARTING_LCN_INPUT_BUFFER * PSTARTING_LCN_INPUT_BUFFER
struct _DISK_LOGGING * PDISK_LOGGING
struct _FSCTL_SET_INTEGRITY_INFORMATION_BUFFER * PFSCTL_SET_INTEGRITY_INFORMATION_BUFFER
struct _BIN_RESULTS BIN_RESULTS
struct _GET_LENGTH_INFORMATION GET_LENGTH_INFORMATION
struct _BIN_RESULTS * PBIN_RESULTS
struct VOLUME_BITMAP_BUFFER * PVOLUME_BITMAP_BUFFER
struct DiskQuotaUserInformation DISKQUOTA_USER_INFORMATION
struct _DISK_RECORD * PDISK_RECORD
struct _VOLUME_DISK_EXTENTS * PVOLUME_DISK_EXTENTS
struct STARTING_VCN_INPUT_BUFFER * PSTARTING_VCN_INPUT_BUFFER
struct NTFS_EXTENDED_VOLUME_DATA * PNTFS_EXTENDED_VOLUME_DATA
DISK_CACHE_RETENTION_PRIORITY
Definition: winioctl.h:535
@ KeepReadData
Definition: winioctl.h:538
@ EqualPriority
Definition: winioctl.h:536
@ KeepPrefetchedData
Definition: winioctl.h:537
struct MOVE_FILE_DATA * PMOVE_FILE_DATA
struct _BIN_COUNT * PBIN_COUNT
struct _FORMAT_PARAMETERS FORMAT_PARAMETERS
struct DiskQuotaUserInformation * PDISKQUOTA_USER_INFORMATION
struct RETRIEVAL_POINTERS_BUFFER * PRETRIEVAL_POINTERS_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 _PREVENT_MEDIA_REMOVAL * PPREVENT_MEDIA_REMOVAL
struct _HISTOGRAM_BUCKET * PHISTOGRAM_BUCKET
struct _FORMAT_PARAMETERS * PFORMAT_PARAMETERS
struct _DISK_CACHE_INFORMATION DISK_CACHE_INFORMATION
struct _BIN_RANGE * PBIN_RANGE
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 _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 _PREVENT_MEDIA_REMOVAL PREVENT_MEDIA_REMOVAL
struct _DISK_GROW_PARTITION * PDISK_GROW_PARTITION
struct _REASSIGN_BLOCKS * PREASSIGN_BLOCKS
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
@ F3_120M_512
Definition: winioctl.h:336
@ F3_1Pt44_512
Definition: winioctl.h:325
@ F5_180_512
Definition: winioctl.h:332
@ RemovableMedia
Definition: winioctl.h:334
@ F5_1Pt23_1024
Definition: winioctl.h:342
@ FixedMedia
Definition: winioctl.h:335
@ F3_200Mb_512
Definition: winioctl.h:346
@ F3_1Pt23_1024
Definition: winioctl.h:341
@ F3_720_512
Definition: winioctl.h:328
@ Unknown
Definition: winioctl.h:323
@ F3_240M_512
Definition: winioctl.h:347
@ F3_1Pt2_512
Definition: winioctl.h:340
@ F5_360_512
Definition: winioctl.h:329
@ F3_640_512
Definition: winioctl.h:337
@ F3_32M_512
Definition: winioctl.h:348
@ F5_160_512
Definition: winioctl.h:333
@ F5_320_1024
Definition: winioctl.h:331
@ F5_320_512
Definition: winioctl.h:330
@ F3_20Pt8_512
Definition: winioctl.h:327
@ F8_256_128
Definition: winioctl.h:345
@ F5_1Pt2_512
Definition: winioctl.h:324
@ F5_720_512
Definition: winioctl.h:339
@ F5_640_512
Definition: winioctl.h:338
@ F3_2Pt88_512
Definition: winioctl.h:326
@ F3_128Mb_512
Definition: winioctl.h:343
@ F3_230Mb_512
Definition: winioctl.h:344
enum _MEDIA_TYPE * PMEDIA_TYPE
struct _SET_PARTITION_INFORMATION * PSET_PARTITION_INFORMATION
struct _BIN_COUNT BIN_COUNT
struct _VERIFY_INFORMATION * PVERIFY_INFORMATION
struct _PARTITION_INFORMATION * PPARTITION_INFORMATION
struct _DISK_HISTOGRAM * PDISK_HISTOGRAM
struct _VOLUME_GET_GPT_ATTRIBUTES_INFORMATION * PVOLUME_GET_GPT_ATTRIBUTES_INFORMATION
struct _NTFS_STATISTICS NTFS_STATISTICS
struct _REASSIGN_BLOCKS REASSIGN_BLOCKS
struct _DISK_CACHE_INFORMATION * PDISK_CACHE_INFORMATION
struct _FAT_STATISTICS FAT_STATISTICS
struct _DISK_PERFORMANCE DISK_PERFORMANCE
_BIN_TYPES
Definition: winioctl.h:305
@ RequestLocation
Definition: winioctl.h:307
@ RequestSize
Definition: winioctl.h:306
struct _DRIVE_LAYOUT_INFORMATION DRIVE_LAYOUT_INFORMATION
WORD BAD_TRACK_NUMBER
Definition: winioctl.h:304
struct _PERF_BIN * PPERF_BIN
struct _DUPLICATE_EXTENTS_DATA DUPLICATE_EXTENTS_DATA
struct _DISK_EXTENT * PDISK_EXTENT
struct _DUPLICATE_EXTENTS_DATA * PDUPLICATE_EXTENTS_DATA
struct NTFS_FILE_RECORD_INPUT_BUFFER * PNTFS_FILE_RECORD_INPUT_BUFFER
struct _SET_PARTITION_INFORMATION SET_PARTITION_INFORMATION
struct _NTFS_STATISTICS * PNTFS_STATISTICS
struct _FSCTL_SET_INTEGRITY_INFORMATION_BUFFER FSCTL_SET_INTEGRITY_INFORMATION_BUFFER
struct _PERF_BIN PERF_BIN
struct _DISK_HISTOGRAM DISK_HISTOGRAM
WORD * PBAD_TRACK_NUMBER
Definition: winioctl.h:304
struct _VOLUME_GET_GPT_ATTRIBUTES_INFORMATION VOLUME_GET_GPT_ATTRIBUTES_INFORMATION
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 StartingLcn
Definition: winioctl.h:767
LARGE_INTEGER StartingVcn
Definition: winioctl.h:766
HANDLE FileHandle
Definition: winioctl.h:765
DWORD ClusterCount
Definition: winioctl.h:768
LARGE_INTEGER FileReferenceNumber
Definition: winioctl.h:811
LARGE_INTEGER FileReferenceNumber
Definition: winioctl.h:814
LARGE_INTEGER NumberSectors
Definition: winioctl.h:791
LARGE_INTEGER MftValidDataLength
Definition: winioctl.h:799
LARGE_INTEGER TotalReserved
Definition: winioctl.h:794
LARGE_INTEGER Mft2StartLcn
Definition: winioctl.h:801
LARGE_INTEGER FreeClusters
Definition: winioctl.h:793
DWORD BytesPerFileRecordSegment
Definition: winioctl.h:797
LARGE_INTEGER MftZoneStart
Definition: winioctl.h:802
DWORD ClustersPerFileRecordSegment
Definition: winioctl.h:798
LARGE_INTEGER TotalClusters
Definition: winioctl.h:792
LARGE_INTEGER VolumeSerialNumber
Definition: winioctl.h:790
LARGE_INTEGER MftZoneEnd
Definition: winioctl.h:803
LARGE_INTEGER MftStartLcn
Definition: winioctl.h:800
LARGE_INTEGER NextVcn
Definition: winioctl.h:774
LARGE_INTEGER StartingVcn
Definition: winioctl.h:772
struct RETRIEVAL_POINTERS_BUFFER::@3344 Extents[1]
LARGE_INTEGER StartingLcn
Definition: winioctl.h:779
LARGE_INTEGER StartingVcn
Definition: winioctl.h:782
LARGE_INTEGER BitmapSize
Definition: winioctl.h:786
LARGE_INTEGER StartingLcn
Definition: winioctl.h:785
DWORD BinCount
Definition: winioctl.h:315
BIN_RANGE BinRange
Definition: winioctl.h:314
LARGE_INTEGER Length
Definition: winioctl.h:311
LARGE_INTEGER StartValue
Definition: winioctl.h:310
BIN_COUNT BinCounts[1]
Definition: winioctl.h:319
DWORD NumberOfBins
Definition: winioctl.h:318
struct _DISK_CACHE_INFORMATION::@3340::@3343 BlockPrefetch
DISK_CACHE_RETENTION_PRIORITY ReadRetentionPriority
Definition: winioctl.h:544
WORD DisablePrefetchTransferLength
Definition: winioctl.h:546
struct _DISK_CACHE_INFORMATION::@3340::@3342 ScalarPrefetch
DISK_CACHE_RETENTION_PRIORITY WriteRetentionPriority
Definition: winioctl.h:545
DWORD DiskNumber
Definition: winioctl.h:693
LARGE_INTEGER StartingOffset
Definition: ntddvol.h:49
LARGE_INTEGER ExtentLength
Definition: ntddvol.h:50
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:354
DWORD SectorsPerTrack
Definition: winioctl.h:355
DWORD BytesPerSector
Definition: winioctl.h:356
LARGE_INTEGER BytesToGrow
Definition: winioctl.h:533
DWORD Granularity
Definition: winioctl.h:632
LARGE_INTEGER AverageWrite
Definition: winioctl.h:631
DWORD WriteCount
Definition: winioctl.h:635
LARGE_INTEGER Start
Definition: winioctl.h:627
PHISTOGRAM_BUCKET Histogram
Definition: winioctl.h:636
LARGE_INTEGER End
Definition: winioctl.h:628
DWORD ReadCount
Definition: winioctl.h:634
LARGE_INTEGER DiskSize
Definition: winioctl.h:626
LARGE_INTEGER AverageRead
Definition: winioctl.h:630
LARGE_INTEGER Average
Definition: winioctl.h:629
DWORD BufferSize
Definition: winioctl.h:587
BYTE Function
Definition: winioctl.h:585
PVOID BufferAddress
Definition: winioctl.h:586
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:572
LARGE_INTEGER ByteOffset
Definition: winioctl.h:576
PVOID VirtualAddress
Definition: winioctl.h:579
BOOLEAN ReadRequest
Definition: winioctl.h:582
LARGE_INTEGER EndTime
Definition: winioctl.h:578
LARGE_INTEGER StartTime
Definition: winioctl.h:577
BYTE DeviceNumber
Definition: winioctl.h:581
DWORD NumberOfBytes
Definition: winioctl.h:580
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:861
ULONG NonCachedDiskWrites
Definition: winioctl.h:863
ULONG SuccessfulCreates
Definition: winioctl.h:856
ULONG FailedCreates
Definition: winioctl.h:857
ULONG NonCachedReads
Definition: winioctl.h:858
ULONG NonCachedDiskReads
Definition: winioctl.h:862
ULONG NonCachedWrites
Definition: winioctl.h:860
ULONG NonCachedReadBytes
Definition: winioctl.h:859
ULONG SuccessfulCreates
Definition: winioctl.h:844
ULONG CreateHits
Definition: winioctl.h:843
ULONG NonCachedReadBytes
Definition: winioctl.h:847
ULONG NonCachedDiskWrites
Definition: winioctl.h:851
ULONG FailedCreates
Definition: winioctl.h:845
ULONG NonCachedWriteBytes
Definition: winioctl.h:849
ULONG NonCachedReads
Definition: winioctl.h:846
ULONG NonCachedDiskReads
Definition: winioctl.h:850
ULONG NonCachedWrites
Definition: winioctl.h:848
ULONG SizeOfCompleteStructure
Definition: winioctl.h:823
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:598
DWORD StartHeadNumber
Definition: winioctl.h:599
DWORD StartCylinderNumber
Definition: winioctl.h:597
LARGE_INTEGER Length
Definition: imports.h:232
ULONG UserIndexReads
Definition: winioctl.h:922
ULONG RootIndexReadBytes
Definition: winioctl.h:894
ULONG UserIndexWrites
Definition: winioctl.h:924
ULONG Mft2WriteBytes
Definition: winioctl.h:883
ULONG MftBitmapReadBytes
Definition: winioctl.h:910
ULONG CacheMissClusters
Definition: winioctl.h:940
ULONG RootIndexWrites
Definition: winioctl.h:895
USHORT MftWritesLazyWriter
Definition: winioctl.h:880
ULONG MftBitmapReads
Definition: winioctl.h:909
USHORT SetInfo
Definition: winioctl.h:876
USHORT Mft2WritesFlushForLogFileFull
Definition: winioctl.h:890
ULONG RunsReturned
Definition: winioctl.h:934
ULONG CacheClusters
Definition: winioctl.h:938
USHORT Mft2WritesUserRequest
Definition: winioctl.h:892
ULONG LogFileReadBytes
Definition: winioctl.h:927
USHORT BitmapWritesUserRequest
Definition: winioctl.h:903
ULONG RootIndexWriteBytes
Definition: winioctl.h:896
ULONG LogFileWrites
Definition: winioctl.h:928
ULONG RootIndexReads
Definition: winioctl.h:893
USHORT BitmapWritesFlushForLogFileFull
Definition: winioctl.h:901
USHORT MftWritesUserRequest
Definition: winioctl.h:881
ULONG BitmapReadBytes
Definition: winioctl.h:898
ULONG BitmapWriteBytes
Definition: winioctl.h:900
struct _NTFS_STATISTICS::@3347 BitmapWritesUserLevel
ULONG HintsClusters
Definition: winioctl.h:936
ULONG MftBitmapWrites
Definition: winioctl.h:911
ULONG OtherExceptions
Definition: winioctl.h:868
ULONG UserIndexReadBytes
Definition: winioctl.h:923
ULONG UserIndexWriteBytes
Definition: winioctl.h:925
ULONG LogFileFullExceptions
Definition: winioctl.h:867
ULONG LogFileReads
Definition: winioctl.h:926
ULONG Mft2Writes
Definition: winioctl.h:882
ULONG HintsHonored
Definition: winioctl.h:935
ULONG MftWriteBytes
Definition: winioctl.h:872
ULONG LogFileWriteBytes
Definition: winioctl.h:929
ULONG MftReadBytes
Definition: winioctl.h:870
struct _NTFS_STATISTICS::@3348 MftBitmapWritesUserLevel
USHORT MftBitmapWritesFlushForLogFileFull
Definition: winioctl.h:913
struct _NTFS_STATISTICS::@3349 Allocate
struct _NTFS_STATISTICS::@3345 MftWritesUserLevel
ULONG BitmapReads
Definition: winioctl.h:897
struct _NTFS_STATISTICS::@3346 Mft2WritesUserLevel
ULONG MftBitmapWriteBytes
Definition: winioctl.h:912
ULONG BitmapWrites
Definition: winioctl.h:899
USHORT MftBitmapWritesUserRequest
Definition: winioctl.h:915
USHORT BitmapWritesLazyWriter
Definition: winioctl.h:902
USHORT MftBitmapWritesLazyWriter
Definition: winioctl.h:914
USHORT MftWritesFlushForLogFileFull
Definition: winioctl.h:879
USHORT Mft2WritesLazyWriter
Definition: winioctl.h:891
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:640
BIN_RANGE BinsRanges[1]
Definition: winioctl.h:642
DWORD TypeOfBin
Definition: winioctl.h:641
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:55
DWORD NumberOfDiskExtents
Definition: winioctl.h:698
uint64_t DWORD64
Definition: typedefs.h:67
int64_t LONGLONG
Definition: typedefs.h:68
uint32_t ULONG
Definition: typedefs.h:59
_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