ReactOS  0.4.15-dev-994-ga9f6032
ntdddisk.h
Go to the documentation of this file.
1 /*
2  * ntdddisk.h
3  *
4  * Disk IOCTL interface.
5  *
6  * This file is part of the w32api package.
7  *
8  * Contributors:
9  * Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
10  *
11  * THIS SOFTWARE IS NOT COPYRIGHTED
12  *
13  * This source code is offered for use in the public domain. You may
14  * use, modify or distribute it freely.
15  *
16  * This code is distributed in the hope that it will be useful but
17  * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
18  * DISCLAIMED. This includes but is not limited to warranties of
19  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
20  *
21  */
22 
23 #ifndef _NTDDDISK_H_
24 #define _NTDDDISK_H_
25 
26 /* Helper macro to enable gcc's extension. */
27 #ifndef __GNU_EXTENSION
28 #ifdef __GNUC__
29 #define __GNU_EXTENSION __extension__
30 #else
31 #define __GNU_EXTENSION
32 #endif
33 #endif
34 
35 #include "ntddstor.h"
36 
37 #ifdef __cplusplus
38 extern "C" {
39 #endif
40 
41 #define DD_DISK_DEVICE_NAME "\\Device\\UNKNOWN"
42 #define DD_DISK_DEVICE_NAME_U L"\\Device\\UNKNOWN"
43 
44 #define IOCTL_DISK_BASE FILE_DEVICE_DISK
45 
46 #define IOCTL_DISK_ARE_VOLUMES_READY \
47  CTL_CODE(IOCTL_DISK_BASE, 0x0087, METHOD_BUFFERED, FILE_READ_ACCESS)
48 
49 #define IOCTL_DISK_CHECK_VERIFY \
50  CTL_CODE(IOCTL_DISK_BASE, 0x0200, METHOD_BUFFERED, FILE_READ_ACCESS)
51 
52 #define IOCTL_DISK_CONTROLLER_NUMBER \
53  CTL_CODE(IOCTL_DISK_BASE, 0x0011, METHOD_BUFFERED, FILE_ANY_ACCESS)
54 
55 #define IOCTL_DISK_CREATE_DISK \
56  CTL_CODE(IOCTL_DISK_BASE, 0x0016, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
57 
58 #define IOCTL_DISK_DELETE_DRIVE_LAYOUT \
59  CTL_CODE(IOCTL_DISK_BASE, 0x0040, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
60 
61 #define IOCTL_DISK_FIND_NEW_DEVICES \
62  CTL_CODE(IOCTL_DISK_BASE, 0x0206, METHOD_BUFFERED, FILE_READ_ACCESS)
63 
64 #define IOCTL_DISK_FORMAT_DRIVE \
65  CTL_CODE(IOCTL_DISK_BASE, 0x00f3, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
66 
67 #define IOCTL_DISK_FORMAT_TRACKS \
68  CTL_CODE(IOCTL_DISK_BASE, 0x0006, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
69 
70 #define IOCTL_DISK_FORMAT_TRACKS_EX \
71  CTL_CODE(IOCTL_DISK_BASE, 0x000b, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
72 
73 #define IOCTL_DISK_GET_CACHE_INFORMATION \
74  CTL_CODE(IOCTL_DISK_BASE, 0x0035, METHOD_BUFFERED, FILE_READ_ACCESS)
75 
76 #define IOCTL_DISK_GET_CACHE_SETTING \
77  CTL_CODE(IOCTL_DISK_BASE, 0x0038, METHOD_BUFFERED, FILE_READ_ACCESS)
78 
79 #define IOCTL_DISK_GET_CLUSTER_INFO \
80  CTL_CODE(IOCTL_DISK_BASE, 0x0085, METHOD_BUFFERED, FILE_ANY_ACCESS)
81 
82 #define IOCTL_DISK_GET_DISK_ATTRIBUTES \
83  CTL_CODE(IOCTL_DISK_BASE, 0x003c, METHOD_BUFFERED, FILE_ANY_ACCESS)
84 
85 #define IOCTL_DISK_GET_DRIVE_GEOMETRY \
86  CTL_CODE(IOCTL_DISK_BASE, 0x0000, METHOD_BUFFERED, FILE_ANY_ACCESS)
87 
88 #define IOCTL_DISK_GET_DRIVE_GEOMETRY_EX \
89  CTL_CODE(IOCTL_DISK_BASE, 0x0028, METHOD_BUFFERED, FILE_ANY_ACCESS)
90 
91 #define IOCTL_DISK_GET_DRIVE_LAYOUT \
92  CTL_CODE(IOCTL_DISK_BASE, 0x0003, METHOD_BUFFERED, FILE_READ_ACCESS)
93 
94 #define IOCTL_DISK_GET_DRIVE_LAYOUT_EX \
95  CTL_CODE(IOCTL_DISK_BASE, 0x0014, METHOD_BUFFERED, FILE_ANY_ACCESS)
96 
97 #define IOCTL_DISK_GET_MEDIA_TYPES \
98  CTL_CODE(IOCTL_DISK_BASE, 0x0300, METHOD_BUFFERED, FILE_ANY_ACCESS)
99 
100 #define IOCTL_DISK_GET_LENGTH_INFO \
101  CTL_CODE(IOCTL_DISK_BASE, 0x0017, METHOD_BUFFERED, FILE_READ_ACCESS)
102 
103 #define IOCTL_DISK_GET_PARTITION_ATTRIBUTES \
104  CTL_CODE(IOCTL_DISK_BASE, 0x003a, METHOD_BUFFERED, FILE_ANY_ACCESS)
105 
106 #define IOCTL_DISK_GET_PARTITION_INFO \
107  CTL_CODE(IOCTL_DISK_BASE, 0x0001, METHOD_BUFFERED, FILE_READ_ACCESS)
108 
109 #define IOCTL_DISK_GET_PARTITION_INFO_EX \
110  CTL_CODE(IOCTL_DISK_BASE, 0x0012, METHOD_BUFFERED, FILE_ANY_ACCESS)
111 
112 #define IOCTL_DISK_GET_PERFORMANCE_INFO \
113  CTL_CODE(IOCTL_DISK_BASE, 0x0089, METHOD_BUFFERED, FILE_ANY_ACCESS)
114 
115 #define IOCTL_DISK_GET_SAN_SETTINGS \
116  CTL_CODE(IOCTL_DISK_BASE, 0x0080, METHOD_BUFFERED, FILE_READ_ACCESS)
117 
118 #define IOCTL_DISK_GET_SNAPSHOT_INFO \
119  CTL_CODE(IOCTL_DISK_BASE, 0x0082, METHOD_BUFFERED, FILE_READ_ACCESS)
120 
121 #define IOCTL_DISK_GROW_PARTITION \
122  CTL_CODE(IOCTL_DISK_BASE, 0x0034, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
123 
124 #define IOCTL_DISK_HISTOGRAM_STRUCTURE \
125  CTL_CODE(IOCTL_DISK_BASE, 0x000c, METHOD_BUFFERED, FILE_ANY_ACCESS)
126 
127 #define IOCTL_DISK_HISTOGRAM_DATA \
128  CTL_CODE(IOCTL_DISK_BASE, 0x000d, METHOD_BUFFERED, FILE_ANY_ACCESS)
129 
130 #define IOCTL_DISK_HISTOGRAM_RESET \
131  CTL_CODE(IOCTL_DISK_BASE, 0x000e, METHOD_BUFFERED, FILE_ANY_ACCESS)
132 
133 #define IOCTL_DISK_INTERNAL_CLEAR_VERIFY \
134  CTL_CODE(IOCTL_DISK_BASE, 0x0101, METHOD_NEITHER, FILE_ANY_ACCESS)
135 
136 #define IOCTL_DISK_INTERNAL_SET_VERIFY \
137  CTL_CODE(IOCTL_DISK_BASE, 0x0100, METHOD_NEITHER, FILE_ANY_ACCESS)
138 
139 #define IOCTL_DISK_INTERNAL_SET_NOTIFY \
140  CTL_CODE(IOCTL_DISK_BASE, 0x0102, METHOD_BUFFERED, FILE_ANY_ACCESS)
141 
142 #define IOCTL_DISK_IS_CLUSTERED \
143  CTL_CODE(IOCTL_DISK_BASE, 0x003e, METHOD_BUFFERED, FILE_ANY_ACCESS)
144 
145 #define IOCTL_DISK_IS_WRITABLE \
146  CTL_CODE(IOCTL_DISK_BASE, 0x0009, METHOD_BUFFERED, FILE_ANY_ACCESS)
147 
148 #define IOCTL_DISK_LOGGING \
149  CTL_CODE(IOCTL_DISK_BASE, 0x000a, METHOD_BUFFERED, FILE_ANY_ACCESS)
150 
151 #define IOCTL_DISK_PERFORMANCE \
152  CTL_CODE(IOCTL_DISK_BASE, 0x0008, METHOD_BUFFERED, FILE_ANY_ACCESS)
153 
154 #define IOCTL_DISK_PERFORMANCE_OFF \
155  CTL_CODE(IOCTL_DISK_BASE, 0x0018, METHOD_BUFFERED, FILE_ANY_ACCESS)
156 
157 #define IOCTL_DISK_REASSIGN_BLOCKS \
158  CTL_CODE(IOCTL_DISK_BASE, 0x0007, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
159 
160 #define IOCTL_DISK_REQUEST_DATA \
161  CTL_CODE(IOCTL_DISK_BASE, 0x0010, METHOD_BUFFERED, FILE_ANY_ACCESS)
162 
163 #define IOCTL_DISK_REQUEST_STRUCTURE \
164  CTL_CODE(IOCTL_DISK_BASE, 0x000f, METHOD_BUFFERED, FILE_ANY_ACCESS)
165 
166 #define IOCTL_DISK_RESET_SNAPSHOT_INFO \
167  CTL_CODE(IOCTL_DISK_BASE, 0x0084, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
168 
169 #define IOCTL_DISK_MEDIA_REMOVAL \
170  CTL_CODE(IOCTL_DISK_BASE, 0x0201, METHOD_BUFFERED, FILE_READ_ACCESS)
171 
172 #define IOCTL_DISK_EJECT_MEDIA \
173  CTL_CODE(IOCTL_DISK_BASE, 0x0202, METHOD_BUFFERED, FILE_READ_ACCESS)
174 
175 #define IOCTL_DISK_LOAD_MEDIA \
176  CTL_CODE(IOCTL_DISK_BASE, 0x0203, METHOD_BUFFERED, FILE_READ_ACCESS)
177 
178 #define IOCTL_DISK_REASSIGN_BLOCKS_EX \
179  CTL_CODE(IOCTL_DISK_BASE, 0x0029, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
180 
181 #define IOCTL_DISK_RESERVE \
182  CTL_CODE(IOCTL_DISK_BASE, 0x0204, METHOD_BUFFERED, FILE_READ_ACCESS)
183 
184 #define IOCTL_DISK_RELEASE \
185  CTL_CODE(IOCTL_DISK_BASE, 0x0205, METHOD_BUFFERED, FILE_READ_ACCESS)
186 
187 #define IOCTL_DISK_FIND_NEW_DEVICES \
188  CTL_CODE(IOCTL_DISK_BASE, 0x0206, METHOD_BUFFERED, FILE_READ_ACCESS)
189 
190 #define IOCTL_DISK_SENSE_DEVICE \
191  CTL_CODE(IOCTL_DISK_BASE, 0x00f8, METHOD_BUFFERED, FILE_ANY_ACCESS)
192 
193 #define IOCTL_DISK_SET_CACHE_INFORMATION \
194  CTL_CODE(IOCTL_DISK_BASE, 0x0036, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
195 
196 #define IOCTL_DISK_SET_CACHE_SETTING \
197  CTL_CODE(IOCTL_DISK_BASE, 0x0039, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
198 
199 #define IOCTL_DISK_SET_CLUSTER_INFO \
200  CTL_CODE(IOCTL_DISK_BASE, 0x0086, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
201 
202 #define IOCTL_DISK_SET_DISK_ATTRIBUTES \
203  CTL_CODE(IOCTL_DISK_BASE, 0x003d, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
204 
205 #define IOCTL_DISK_SET_DRIVE_LAYOUT \
206  CTL_CODE(IOCTL_DISK_BASE, 0x0004, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
207 
208 #define IOCTL_DISK_SET_DRIVE_LAYOUT_EX \
209  CTL_CODE(IOCTL_DISK_BASE, 0x0015, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
210 
211 #define IOCTL_DISK_SET_PARTITION_ATTRIBUTES \
212  CTL_CODE(IOCTL_DISK_BASE, 0x003b, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
213 
214 #define IOCTL_DISK_SET_PARTITION_INFO \
215  CTL_CODE(IOCTL_DISK_BASE, 0x0002, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
216 
217 #define IOCTL_DISK_SET_PARTITION_INFO_EX \
218  CTL_CODE(IOCTL_DISK_BASE, 0x0013, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
219 
220 #define IOCTL_DISK_SET_SAN_SETTINGS \
221  CTL_CODE(IOCTL_DISK_BASE, 0x0081, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
222 
223 #define IOCTL_DISK_SET_SNAPSHOT_INFO \
224  CTL_CODE(IOCTL_DISK_BASE, 0x0083, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
225 
226 //
227 // NTDDI_WIN2003 was an older define used in the early beta builds, which
228 // Microsoft forgot to fix in a few headers.
229 // NTDDI_WS03 is the correct term.
230 //
231 #if (NTDDI_VERSION < NTDDI_WS03)
232 #define IOCTL_DISK_GET_WRITE_CACHE_STATE \
233  CTL_CODE(IOCTL_DISK_BASE, 0x0037, METHOD_BUFFERED, FILE_READ_ACCESS)
234 #else
235 #define OBSOLETE_DISK_GET_WRITE_CACHE_STATE \
236  CTL_CODE(IOCTL_DISK_BASE, 0x0037, METHOD_BUFFERED, FILE_READ_ACCESS)
237 #endif
238 
239 #define IOCTL_DISK_UPDATE_DRIVE_SIZE \
240  CTL_CODE(IOCTL_DISK_BASE, 0x0032, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
241 
242 #define IOCTL_DISK_UPDATE_PROPERTIES \
243  CTL_CODE(IOCTL_DISK_BASE, 0x0050, METHOD_BUFFERED, FILE_ANY_ACCESS)
244 
245 #define IOCTL_DISK_VERIFY \
246  CTL_CODE(IOCTL_DISK_BASE, 0x0005, METHOD_BUFFERED, FILE_ANY_ACCESS)
247 
248 #define IOCTL_DISK_VOLUMES_ARE_READY \
249  CTL_CODE(IOCTL_DISK_BASE, 0x0088, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
250 
251 #define IOCTL_DISK_COPY_DATA \
252  CTL_CODE(IOCTL_DISK_BASE, 0x0019, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
253 
254 #define IOCTL_DISK_SIMBAD \
255  CTL_CODE(IOCTL_DISK_BASE, 0x0400, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
256 
257 #define SMART_GET_VERSION \
258  CTL_CODE(IOCTL_DISK_BASE, 0x0020, METHOD_BUFFERED, FILE_READ_ACCESS)
259 
260 #define SMART_RCV_DRIVE_DATA \
261  CTL_CODE(IOCTL_DISK_BASE, 0x0022, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
262 
263 #define SMART_SEND_DRIVE_COMMAND \
264  CTL_CODE(IOCTL_DISK_BASE, 0x0021, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
265 
266 #define PARTITION_ENTRY_UNUSED 0x00
267 #define PARTITION_FAT_12 0x01
268 #define PARTITION_XENIX_1 0x02
269 #define PARTITION_XENIX_2 0x03
270 #define PARTITION_FAT_16 0x04
271 #define PARTITION_EXTENDED 0x05
272 #define PARTITION_HUGE 0x06
273 #define PARTITION_IFS 0x07
274 #define PARTITION_OS2BOOTMGR 0x0A
275 #define PARTITION_FAT32 0x0B
276 #define PARTITION_FAT32_XINT13 0x0C
277 #define PARTITION_XINT13 0x0E
278 #define PARTITION_XINT13_EXTENDED 0x0F
279 #define PARTITION_MSFT_RECOVERY 0x27
280 #define PARTITION_MAIN_OS 0x28
281 #define PARTIITON_OS_DATA 0x29
282 #define PARTITION_PRE_INSTALLED 0x2a
283 #define PARTITION_BSP 0x2b
284 #define PARTITION_DPP 0x2c
285 #define PARTITION_WINDOWS_SYSTEM 0x2d
286 #define PARTITION_PREP 0x41
287 #define PARTITION_LDM 0x42
288 #define PARTITION_DM 0x54
289 #define PARTITION_EZDRIVE 0x55
290 #define PARTITION_UNIX 0x63
291 #define PARTITION_SPACES_DATA 0xD7
292 #define PARTITION_SPACES 0xE7
293 #define PARTITION_GPT 0xEE
294 #define PARTITION_SYSTEM 0xEF
295 
296 #define VALID_NTFT 0xC0
297 #define PARTITION_NTFT 0x80
298 #ifdef __REACTOS__
299 #define PARTITION_OLD_LINUX 0x43
300 #define PARTITION_LINUX 0x83
301 #define PARTITION_ISO9660 0x96
302 #define PARTITION_FREEBSD 0xA5
303 #define PARTITION_OPENBSD 0xA6
304 #define PARTITION_NETBSD 0xA9
305 #endif
306 
307 #define IsFTPartition( PartitionType ) \
308  (((PartitionType) & PARTITION_NTFT) && (((PartitionType) & ~0xC0) == PARTITION_FAT_12)) || \
309  (((PartitionType) & PARTITION_NTFT) && (((PartitionType) & ~0xC0) == PARTITION_HUGE)) || \
310  (((PartitionType) & PARTITION_NTFT) && (((PartitionType) & ~0xC0) == PARTITION_IFS)) || \
311  (((PartitionType) & PARTITION_NTFT) && (((PartitionType) & ~0xC0) == PARTITION_FAT32)) || \
312  (((PartitionType) & PARTITION_NTFT) && (((PartitionType) & ~0xC0) == PARTITION_FAT32_XINT13)) || \
313  (((PartitionType) & PARTITION_NTFT) && (((PartitionType) & ~0xC0) == PARTITION_XINT13))
314 
315 
316 #define IsContainerPartition(PartitionType) \
317  (((PartitionType) == PARTITION_EXTENDED) || \
318  ((PartitionType) == PARTITION_XINT13_EXTENDED))
319 
320 #ifdef __REACTOS__
321 #define IsRecognizedPartition(PartitionType) ( \
322  (((PartitionType) & PARTITION_NTFT) && (((PartitionType) & ~0xC0) == PARTITION_FAT_12)) || \
323  (((PartitionType) & PARTITION_NTFT) && (((PartitionType) & ~0xC0) == PARTITION_HUGE)) || \
324  (((PartitionType) & PARTITION_NTFT) && (((PartitionType) & ~0xC0) == PARTITION_IFS)) || \
325  (((PartitionType) & PARTITION_NTFT) && (((PartitionType) & ~0xC0) == PARTITION_FAT32)) || \
326  (((PartitionType) & PARTITION_NTFT) && (((PartitionType) & ~0xC0) == PARTITION_FAT32_XINT13)) || \
327  (((PartitionType) & PARTITION_NTFT) && (((PartitionType) & ~0xC0) == PARTITION_XINT13)) || \
328  ((PartitionType) == PARTITION_FAT_12) || \
329  ((PartitionType) == PARTITION_FAT_16) || \
330  ((PartitionType) == PARTITION_HUGE) || \
331  ((PartitionType) == PARTITION_IFS) || \
332  ((PartitionType) == PARTITION_FAT32) || \
333  ((PartitionType) == PARTITION_FAT32_XINT13) || \
334  ((PartitionType) == PARTITION_XINT13) || \
335  ((PartitionType) == PARTITION_LINUX) || \
336  ((PartitionType) == PARTITION_OLD_LINUX) || \
337  ((PartitionType) == PARTITION_ISO9660) || \
338  ((PartitionType) == PARTITION_FREEBSD) || \
339  ((PartitionType) == PARTITION_OPENBSD) || \
340  ((PartitionType) == PARTITION_NETBSD))
341 #else
342 #define IsRecognizedPartition(PartitionType) ( \
343  (((PartitionType) & PARTITION_NTFT) && (((PartitionType) & ~0xC0) == PARTITION_FAT_12)) || \
344  (((PartitionType) & PARTITION_NTFT) && (((PartitionType) & ~0xC0) == PARTITION_HUGE)) || \
345  (((PartitionType) & PARTITION_NTFT) && (((PartitionType) & ~0xC0) == PARTITION_IFS)) || \
346  (((PartitionType) & PARTITION_NTFT) && (((PartitionType) & ~0xC0) == PARTITION_FAT32)) || \
347  (((PartitionType) & PARTITION_NTFT) && (((PartitionType) & ~0xC0) == PARTITION_FAT32_XINT13)) || \
348  (((PartitionType) & PARTITION_NTFT) && (((PartitionType) & ~0xC0) == PARTITION_XINT13)) || \
349  ((PartitionType) == PARTITION_FAT_12) || \
350  ((PartitionType) == PARTITION_FAT_16) || \
351  ((PartitionType) == PARTITION_HUGE) || \
352  ((PartitionType) == PARTITION_IFS) || \
353  ((PartitionType) == PARTITION_FAT32) || \
354  ((PartitionType) == PARTITION_FAT32_XINT13) || \
355  ((PartitionType) == PARTITION_XINT13))
356 #endif
357 
358 #if(_WIN32_WINNT >= 0x0500)
359 #define GPT_ATTRIBUTE_PLATFORM_REQUIRED 0x00000001
360 #define GPT_BASIC_DATA_ATTRIBUTE_READ_ONLY 0x10000000
361 #define GPT_BASIC_DATA_ATTRIBUTE_SHADOW_COPY 0x20000000
362 #define GPT_BASIC_DATA_ATTRIBUTE_HIDDEN 0x40000000
363 #define GPT_BASIC_DATA_ATTRIBUTE_NO_DRIVE_LETTER 0x80000000
364 #endif
365 
366 #define WMI_DISK_GEOMETRY_GUID \
367  {0x25007f51, 0x57c2, 0x11d1, {0xa5, 0x28, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0x10}}
368 
371 
372 typedef enum _MEDIA_TYPE {
400 
401 typedef enum _DETECTION_TYPE {
406 
407 typedef struct _DISK_INT13_INFO {
414 
415 typedef struct _DISK_EX_INT13_INFO {
425 
426 typedef struct _DISK_DETECTION_INFO {
429  _ANONYMOUS_UNION union {
430  _ANONYMOUS_STRUCT struct {
433  } DUMMYSTRUCTNAME;
434  } DUMMYUNIONNAME;
436 
437 typedef struct _DISK_GEOMETRY {
444 
445 typedef struct _DISK_GEOMETRY_EX {
450 
451 #if (NTDDI_VERSION < NTDDI_WS03)
452 #define DiskGeometryGetPartition(Geometry) \
453  ((PDISK_PARTITION_INFO)((Geometry) + 1))
454 
455 #define DiskGeometryGetDetect(Geometry)\
456  ((PDISK_DETECTION_INFO)(((PBYTE)DiskGeometryGetPartition(Geometry) + \
457  DiskGeometryGetPartition(Geometry)->SizeOfPartitionInfo)))
458 #else
459 #define DiskGeometryGetPartition(Geometry) \
460  ((PDISK_PARTITION_INFO)((Geometry)->Data))
461 
462 #define DiskGeometryGetDetect(Geometry)\
463  ((PDISK_DETECTION_INFO)(((ULONG_PTR)DiskGeometryGetPartition(Geometry) + \
464  DiskGeometryGetPartition(Geometry)->SizeOfPartitionInfo)))
465 #endif
466 
467 typedef struct _PARTITION_INFORMATION {
477 
478 typedef struct _PARTITION_INFORMATION_GPT {
482  WCHAR Name [36];
484 
485 typedef enum _PARTITION_STYLE {
489 #ifdef __REACTOS__
490  /* ReactOS custom partition handlers */
491  PARTITION_STYLE_BRFR = 128 /* Xbox-BRFR partitioning scheme */
492 #endif
494 
495 typedef struct _DISK_PARTITION_INFO {
498  _ANONYMOUS_UNION union {
499  struct {
502  } Mbr;
503  struct {
505  } Gpt;
506  } DUMMYUNIONNAME;
508 
509 typedef struct _DISK_PERFORMANCE {
523 
524 typedef struct _PARTITION_INFORMATION_MBR {
530 
531 typedef struct _PARTITION_INFORMATION_EX {
537 #if (NTDDI_VERSION >= NTDDI_WIN10_RS3)
539 #endif
540  _ANONYMOUS_UNION union {
543  } DUMMYUNIONNAME;
545 
551 
554 #if (NTDDI_VERSION >= NTDDI_WIN10_RS1)
556 #endif
558 
565 
569  __GNU_EXTENSION union {
572  };
575 
576 typedef struct _FORMAT_EX_PARAMETERS {
586 
587 typedef struct _FORMAT_PARAMETERS {
594 
595 typedef struct _GET_LENGTH_INFORMATION {
598 
599 typedef struct _REASSIGN_BLOCKS {
604 
605 typedef struct _REASSIGN_BLOCKS_EX {
610 
614 
617 
620  _ANONYMOUS_UNION union {
623  } DUMMYUNIONNAME;
625 
626 typedef struct _VERIFY_INFORMATION {
630 
631 /* GETVERSIONINPARAMS.fCapabilities constants */
632 #define CAP_ATA_ID_CMD 1
633 #define CAP_ATAPI_ID_CMD 2
634 #define CAP_SMART_CMD 4
635 
636 typedef struct _GETVERSIONINPARAMS {
644 
645 /* IDEREGS.bCommandReg constants */
646 #define ATAPI_ID_CMD 0xA1
647 #define ID_CMD 0xEC
648 #define SMART_CMD 0xB0
649 
650 #define SMART_CYL_LOW 0x4F
651 #define SMART_CYL_HI 0xC2
652 
653 typedef struct _IDEREGS {
663 
664 #include <pshpack1.h>
665 typedef struct _SENDCMDINPARAMS {
669  UCHAR bReserved[3];
670  ULONG dwReserved[4];
671  UCHAR bBuffer[1];
673 #include <poppack.h>
674 
675 /* DRIVERSTATUS.bDriverError constants */
676 #define SMART_NO_ERROR 0
677 #define SMART_IDE_ERROR 1
678 #define SMART_INVALID_FLAG 2
679 #define SMART_INVALID_COMMAND 3
680 #define SMART_INVALID_BUFFER 4
681 #define SMART_INVALID_DRIVE 5
682 #define SMART_INVALID_IOCTL 6
683 #define SMART_ERROR_NO_MEM 7
684 #define SMART_INVALID_REGISTER 8
685 #define SMART_NOT_SUPPORTED 9
686 #define SMART_NO_IDE_DEVICE 10
687 
688 #define SMART_OFFLINE_ROUTINE_OFFLINE 0
689 #define SMART_SHORT_SELFTEST_OFFLINE 1
690 #define SMART_EXTENDED_SELFTEST_OFFLINE 2
691 #define SMART_ABORT_OFFLINE_SELFTEST 127
692 #define SMART_SHORT_SELFTEST_CAPTIVE 129
693 #define SMART_EXTENDED_SELFTEST_CAPTIVE 130
694 
695 typedef struct _DRIVERSTATUS {
698  UCHAR bReserved[2];
699  ULONG dwReserved[2];
701 
702 #define READ_ATTRIBUTE_BUFFER_SIZE 512
703 #define IDENTIFY_BUFFER_SIZE 512
704 #define READ_THRESHOLD_BUFFER_SIZE 512
705 #define SMART_LOG_SECTOR_SIZE 512
706 
707 #include <pshpack1.h>
708 typedef struct _SENDCMDOUTPARAMS {
711  UCHAR bBuffer[1];
713 #include <poppack.h>
714 
715 #define READ_ATTRIBUTES 0xD0
716 #define READ_THRESHOLDS 0xD1
717 #define ENABLE_DISABLE_AUTOSAVE 0xD2
718 #define SAVE_ATTRIBUTE_VALUES 0xD3
719 #define EXECUTE_OFFLINE_DIAGS 0xD4
720 #define SMART_READ_LOG 0xD5
721 #define SMART_WRITE_LOG 0xd6
722 #define ENABLE_SMART 0xD8
723 #define DISABLE_SMART 0xD9
724 #define RETURN_SMART_STATUS 0xDA
725 #define ENABLE_DISABLE_AUTO_OFFLINE 0xDB
726 
727 typedef struct _MAPPED_ADDRESS {
734 
735 
736 
737 #if(_WIN32_WINNT >= 0x0500)
738 
739 typedef struct _CREATE_DISK_GPT
740 {
741  GUID DiskId;
742  ULONG MaxPartitionCount;
744 
745 typedef struct _CREATE_DISK_MBR
746 {
749 
750 
751 typedef struct _CREATE_DISK
752 {
753  PARTITION_STYLE PartitionStyle;
754  union {
755  CREATE_DISK_MBR Mbr;
756  CREATE_DISK_GPT Gpt;
757  };
759 
760 
761 typedef enum {
766 
767 typedef enum _DISK_WRITE_CACHE_STATE {
768  DiskWriteCacheNormal,
769  DiskWriteCacheForceDisable,
770  DiskWriteCacheDisableNotSupported
771 } DISK_WRITE_CACHE_STATE, *PDISK_WRITE_CACHE_STATE;
772 
773 
774 typedef struct _DISK_CACHE_INFORMATION
775 {
783  union {
784  struct {
785  USHORT Minimum;
786  USHORT Maximum;
788  } ScalarPrefetch;
789 
790  struct {
791  USHORT Minimum;
792  USHORT Maximum;
793  } BlockPrefetch;
794  };
795 
797 
798 typedef struct _DISK_GROW_PARTITION {
802 #endif
803 
804 // for IOCTL_DISK_CONTROLLER_NUMBER
805 
806 typedef struct _DISK_CONTROLLER_NUMBER {
810 
811 // for IOCTL_DISK_COPY_DATA
812 
819 
820 // for IOCTL_DISK_GET_CACHE_SETTING and IOCTL_DISK_SET_CACHE_SETTING
821 
822 typedef enum _DISK_CACHE_STATE {
827 
828 typedef struct _DISK_CACHE_SETTING {
833 
834 #if (NTDDI_VERSION >= NTDDI_VISTA)
835 
836 // for IOCTL_DISK_GET_PARTITION_ATTRIBUTES and IOCTL_DISK_SET_PARTITION_ATTRIBUTES
837 
843 
851 
852 // for IOCTL_DISK_GET_DISK_ATTRIBUTES and IOCTL_DISK_SET_DISK_ATTRIBUTES
853 
854 #define DISK_ATTRIBUTE_OFFLINE 0x0000000000000001
855 #define DISK_ATTRIBUTE_READ_ONLY 0x0000000000000002
856 #define DISK_ATTRIBUTE_HIDDEN 0x0000000000000004
857 #define DISK_ATTRIBUTE_MAINTENANCE 0x0000000000000008
858 #define DISK_ATTRIBUTE_SPACES_BYPASS 0x0000000000000010
859 
860 typedef struct _GET_DISK_ATTRIBUTES {
865 
866 typedef struct _SET_DISK_ATTRIBUTES {
875 
876 
877 // for IOCTL_DISK_GET_SAN_SETTINGS and IOCTL_DISK_SET_SAN_SETTINGS
878 
879 typedef enum _DISK_SAN_POLICY {
887 
888 typedef struct _DISK_SAN_SETTINGS {
892 
893 // for IOCTL_DISK_GET_SNAPSHOT_INFO and IOCTL_DISK_SET_SNAPSHOT_INFO
894 typedef enum _DISK_SNAPSHOT_STATE {
900 
901 typedef struct _DISK_SNAPSHOT_INFO {
913 #endif /* NTDDI_VERSION >= NTDDI_VISTA */
914 
915 #if (NTDDI_VERSION >= NTDDI_WIN8)
916 
917 // for IOCTL_DISK_GET_CLUSTER_INFO and IOCTL_DISK_SET_CLUSTER_INFO
918 
919 #define DISK_CLUSTER_FLAG_ENABLED 0x0000000000000001
920 #define DISK_CLUSTER_FLAG_CSV 0x0000000000000002
921 #define DISK_CLUSTER_FLAG_IN_MAINTENANCE 0x0000000000000004
922 #define DISK_CLUSTER_FLAG_PNP_ARRIVAL_COMPLETE 0x0000000000000008
923 
924 typedef struct _DISK_CLUSTER_INFO {
930 
931 // for IOCTL_DISK_GET_PERFORMANCE_INFO
932 
938 
943 
944 typedef struct _DISK_PERFORMANCE_INFO {
960 
961 #endif /* NTDDI_VERSION >= NTDDI_WIN8 */
962 
963 
964 #ifdef __cplusplus
965 }
966 #endif
967 
968 #endif /* _NTDDDISK_H_ */
ULONG cBufferSize
Definition: helper.h:31
ULONG64 ExSectorsPerDrive
Definition: ntdddisk.h:421
_DISK_PERFORMANCE_TYPE
Definition: ntdddisk.h:933
struct _REASSIGN_BLOCKS_EX * PREASSIGN_BLOCKS_EX
UCHAR bReserved
Definition: helper.h:16
struct _DISK_COPY_DATA_PARAMETERS DISK_COPY_DATA_PARAMETERS
enum _DISK_SNAPSHOT_STATE DISK_SNAPSHOT_STATE
LARGE_INTEGER BytesRead
Definition: ntdddisk.h:948
struct _SET_DISK_ATTRIBUTES * PSET_DISK_ATTRIBUTES
LARGE_INTEGER PartitionLength
Definition: ntdddisk.h:469
enum _DISK_CACHE_STATE * PDISK_CACHE_STATE
struct _DISK_EX_INT13_INFO * PDISK_EX_INT13_INFO
struct _DISK_COPY_DATA_PARAMETERS * PDISK_COPY_DATA_PARAMETERS
struct CREATE_DISK_MBR * PCREATE_DISK_MBR
struct _VERIFY_INFORMATION VERIFY_INFORMATION
struct _DRIVERSTATUS * PDRIVERSTATUS
UCHAR bSectorNumberReg
Definition: helper.h:11
struct _SET_PARTITION_INFORMATION_EX * PSET_PARTITION_INFORMATION_EX
struct _DRIVE_LAYOUT_INFORMATION_GPT * PDRIVE_LAYOUT_INFORMATION_GPT
DETECTION_TYPE DetectionType
Definition: ntdddisk.h:428
struct _DISK_PERFORMANCE DISK_PERFORMANCE
UCHAR bBuffer[1]
Definition: helper.h:36
USHORT MaxHeads
Definition: ntdddisk.h:411
DISK_CACHE_RETENTION_PRIORITY WriteRetentionPriority
Definition: winioctl.h:269
struct _DRIVE_LAYOUT_INFORMATION_MBR DRIVE_LAYOUT_INFORMATION_MBR
USHORT SectorsPerTrack
Definition: ntdddisk.h:410
#define ANYSIZE_ARRAY
Definition: typedefs.h:46
struct _DISK_PARTITION_INFO DISK_PARTITION_INFO
SET_PARTITION_INFORMATION SET_PARTITION_INFORMATION_MBR
Definition: ntdddisk.h:615
USHORT SectorNumber[1]
Definition: ntdddisk.h:584
_MEDIA_TYPE
Definition: ntdddisk.h:372
#define _ANONYMOUS_UNION
Definition: ntbasedef.h:30
struct _GET_DISK_ATTRIBUTES * PGET_DISK_ATTRIBUTES
_PARTITION_STYLE
Definition: imports.h:200
struct _FORMAT_PARAMETERS FORMAT_PARAMETERS
_DISK_SNAPSHOT_STATE
Definition: ntdddisk.h:894
_ANONYMOUS_UNION union _DISK_PARTITION_INFO::@3103 DUMMYUNIONNAME
DRIVERSTATUS DriverStatus
Definition: helper.h:26
struct _PARTITION_INFORMATION_EX * PPARTITION_INFORMATION_EX
LARGE_INTEGER IoAddress
Definition: ntdddisk.h:731
struct _REASSIGN_BLOCKS_EX REASSIGN_BLOCKS_EX
struct _DISK_CLUSTER_INFO * PDISK_CLUSTER_INFO
struct _GET_PARTITION_ATTRIBUTES GET_PARTITION_ATTRIBUTES
LARGE_INTEGER WriteTime
Definition: ntdddisk.h:951
struct _DISK_CACHE_SETTING * PDISK_CACHE_SETTING
LARGE_INTEGER BlockNumber[1]
Definition: ntdddisk.h:608
USHORT NumberDrives
Definition: ntdddisk.h:412
struct _PARTITION_INFORMATION_EX PARTITION_INFORMATION_EX
enum _MEDIA_TYPE MEDIA_TYPE
struct _DISK_CONTROLLER_NUMBER DISK_CONTROLLER_NUMBER
struct _DISK_DETECTION_INFO DISK_DETECTION_INFO
ULONG BytesPerSector
Definition: ntdddisk.h:442
ULONG TracksPerCylinder
Definition: ntdddisk.h:440
BOOLEAN IsPowerProtected
Definition: ntdddisk.h:831
struct _SENDCMDOUTPARAMS * PSENDCMDOUTPARAMS
DISK_CACHE_STATE State
Definition: ntdddisk.h:830
struct _DISK_CACHE_INFORMATION DISK_CACHE_INFORMATION
struct _PARTITION_INFORMATION PARTITION_INFORMATION
struct _DISK_PERFORMANCE_INFO * PDISK_PERFORMANCE_INFO
UCHAR bSectorCountReg
Definition: helper.h:10
LARGE_INTEGER ReadTime
Definition: ntdddisk.h:512
USHORT DriveSelect
Definition: ntdddisk.h:408
PARTITION_INFORMATION_MBR Mbr
Definition: imports.h:226
LARGE_INTEGER Length
Definition: imports.h:232
enum _DETECTION_TYPE DETECTION_TYPE
ULONG NumberOfBytes
Definition: ntdddisk.h:730
LARGE_INTEGER DiskSize
Definition: ntdddisk.h:447
PARTITION_INFORMATION_GPT Gpt
Definition: imports.h:227
struct _DISK_GEOMETRY_EX DISK_GEOMETRY_EX
PARTITION_STYLE PartitionStyle
Definition: imports.h:220
DISK_INT13_INFO Int13
Definition: ntdddisk.h:431
struct _GET_LENGTH_INFORMATION GET_LENGTH_INFORMATION
LARGE_INTEGER WriteTime
Definition: ntdddisk.h:513
LARGE_INTEGER IdleTime
Definition: ntdddisk.h:953
LARGE_INTEGER BytesRead
Definition: ntdddisk.h:510
struct _DISK_PERFORMANCE_PARAMETERS * PDISK_PERFORMANCE_PARAMETERS
struct CREATE_DISK * PCREATE_DISK
_In_ HANDLE _In_ DWORD _In_ DWORD _Inout_opt_ LPOVERLAPPED _In_opt_ LPTRANSMIT_FILE_BUFFERS _In_ DWORD dwReserved
Definition: mswsock.h:90
struct _DISK_PARTITION_INFO * PDISK_PARTITION_INFO
struct _DISK_PERFORMANCE * PDISK_PERFORMANCE
_DISK_SAN_POLICY
Definition: ntdddisk.h:879
struct _SENDCMDINPARAMS * PSENDCMDINPARAMS
struct _DISK_EX_INT13_INFO DISK_EX_INT13_INFO
struct _DISK_PERFORMANCE_INFO DISK_PERFORMANCE_INFO
struct _DRIVE_LAYOUT_INFORMATION DRIVE_LAYOUT_INFORMATION
struct _GETVERSIONINPARAMS * PGETVERSIONINPARAMS
struct _SENDCMDINPARAMS SENDCMDINPARAMS
DISK_GEOMETRY Geometry
Definition: ntdddisk.h:446
LARGE_INTEGER BytesWritten
Definition: ntdddisk.h:949
struct _SET_PARTITION_ATTRIBUTES * PSET_PARTITION_ATTRIBUTES
struct _DISK_CACHE_INFORMATION::@3272::@3274 ScalarPrefetch
struct _DISK_CLUSTER_INFO DISK_CLUSTER_INFO
unsigned char BOOLEAN
PARTITION_INFORMATION PartitionEntry[1]
Definition: ntdddisk.h:549
_DISK_CACHE_STATE
Definition: ntdddisk.h:822
UCHAR bDriverError
Definition: helper.h:2
struct _REASSIGN_BLOCKS REASSIGN_BLOCKS
SET_PARTITION_INFORMATION_MBR Mbr
Definition: ntdddisk.h:621
struct _MAPPED_ADDRESS * NextMappedAddress
Definition: ntdddisk.h:728
struct _VERIFY_INFORMATION * PVERIFY_INFORMATION
enum _DISK_CACHE_STATE DISK_CACHE_STATE
struct _DISK_PARTITION_INFO::@3103::@3105 Gpt
MEDIA_TYPE MediaType
Definition: ntdddisk.h:588
USHORT * PBAD_TRACK_NUMBER
Definition: ntdddisk.h:370
ULONGLONG Flags
Definition: ntdddisk.h:926
LARGE_INTEGER ReadTime
Definition: ntdddisk.h:950
ULONG StartCylinderNumber
Definition: ntdddisk.h:589
ULONG MaxCylinders
Definition: ntdddisk.h:409
struct _PARTITION_INFORMATION_MBR * PPARTITION_INFORMATION_MBR
ULONGLONG Attributes
Definition: ntdddisk.h:863
struct _SET_PARTITION_ATTRIBUTES SET_PARTITION_ATTRIBUTES
struct _IDEREGS * PIDEREGS
_ANONYMOUS_UNION union _DISK_DETECTION_INFO::@3101 DUMMYUNIONNAME
DISK_CACHE_RETENTION_PRIORITY ReadRetentionPriority
Definition: winioctl.h:268
LARGE_INTEGER DestinationOffset
Definition: ntdddisk.h:815
UCHAR bDriveHeadReg
Definition: helper.h:14
struct _GET_PARTITION_ATTRIBUTES * PGET_PARTITION_ATTRIBUTES
WORD DisablePrefetchTransferLength
Definition: winioctl.h:270
IDEREGS irDriveRegs
Definition: helper.h:32
__wchar_t WCHAR
Definition: xmlstorage.h:180
struct _SENDCMDOUTPARAMS SENDCMDOUTPARAMS
ULONG BusNumber
Definition: ntdddisk.h:732
LARGE_INTEGER StartingOffset
Definition: ntdddisk.h:468
DRIVE_LAYOUT_INFORMATION_MBR Mbr
Definition: ntdddisk.h:570
uint64_t ULONGLONG
Definition: typedefs.h:67
struct _GETVERSIONINPARAMS * LPGETVERSIONINPARAMS
LARGE_INTEGER Cylinders
Definition: ntdddisk.h:438
UCHAR bReserved[2]
Definition: helper.h:4
enum _MEDIA_TYPE * PMEDIA_TYPE
ULONG SectorsPerTrack
Definition: ntdddisk.h:441
ULONG AdditionalDataSize
Definition: ntdddisk.h:910
UCHAR bCommandReg
Definition: helper.h:15
_ANONYMOUS_UNION union _PARTITION_INFORMATION_EX::@3106 DUMMYUNIONNAME
struct _PARTITION_INFORMATION_GPT * PPARTITION_INFORMATION_GPT
USHORT BAD_TRACK_NUMBER
Definition: ntdddisk.h:369
MEDIA_TYPE MediaType
Definition: ntdddisk.h:439
struct _DISK_CACHE_INFORMATION * PDISK_CACHE_INFORMATION
PARTITION_INFORMATION_GPT SET_PARTITION_INFORMATION_GPT
Definition: ntdddisk.h:616
LARGE_INTEGER PartitionLength
Definition: imports.h:222
LARGE_INTEGER QueryTime
Definition: ntdddisk.h:519
struct _DISK_PERFORMANCE_PARAMETERS DISK_PERFORMANCE_PARAMETERS
BOOLEAN RewritePartition
Definition: ntdddisk.h:475
BOOLEAN RelinquishOwnership
Definition: ntdddisk.h:869
MEDIA_TYPE MediaType
Definition: ntdddisk.h:577
enum _DISK_SAN_POLICY * PDISK_SAN_POLICY
unsigned __int64 ULONG64
Definition: imports.h:198
LARGE_INTEGER StartingOffset
Definition: imports.h:221
unsigned char UCHAR
Definition: xmlstorage.h:181
PVOID MappedAddress
Definition: ntdddisk.h:729
struct _DISK_GEOMETRY * PDISK_GEOMETRY
struct _DRIVERSTATUS * LPDRIVERSTATUS
struct _IDEREGS IDEREGS
struct _DISK_GROW_PARTITION * PDISK_GROW_PARTITION
LARGE_INTEGER BytesToGrow
Definition: winioctl.h:358
UCHAR bCylLowReg
Definition: helper.h:12
struct _MAPPED_ADDRESS MAPPED_ADDRESS
enum _PARTITION_STYLE PARTITION_STYLE
BOOLEAN Reserved1[2]
Definition: ntdddisk.h:870
LARGE_INTEGER BytesWritten
Definition: ntdddisk.h:511
struct _IDEREGS * LPIDEREGS
UCHAR bIDEError
Definition: helper.h:3
struct _GETVERSIONINPARAMS GETVERSIONINPARAMS
struct _SENDCMDINPARAMS * LPSENDCMDINPARAMS
#define _ANONYMOUS_STRUCT
Definition: ntbasedef.h:56
struct _DRIVE_LAYOUT_INFORMATION_EX DRIVE_LAYOUT_INFORMATION_EX
struct _FORMAT_PARAMETERS * PFORMAT_PARAMETERS
enum _PARTITION_STYLE PARTITION_STYLE
struct _SENDCMDOUTPARAMS * LPSENDCMDOUTPARAMS
UCHAR bFeaturesReg
Definition: helper.h:9
struct _PARTITION_INFORMATION_GPT PARTITION_INFORMATION_GPT
enum _DISK_PERFORMANCE_TYPE * PDISK_PERFORMANCE_TYPE
enum _DISK_PERFORMANCE_TYPE DISK_PERFORMANCE_TYPE
LARGE_INTEGER QueryTime
Definition: ntdddisk.h:947
DISK_EX_INT13_INFO ExInt13
Definition: ntdddisk.h:432
struct _GET_LENGTH_INFORMATION * PGET_LENGTH_INFORMATION
ULONGLONG FlagsMask
Definition: ntdddisk.h:927
struct _DISK_GEOMETRY DISK_GEOMETRY
struct _PARTITION_INFORMATION * PPARTITION_INFORMATION
struct _DISK_CACHE_SETTING DISK_CACHE_SETTING
struct _DISK_SNAPSHOT_INFO DISK_SNAPSHOT_INFO
LARGE_INTEGER IdleTime
Definition: ntdddisk.h:514
UCHAR bReserved[3]
Definition: helper.h:34
unsigned short USHORT
Definition: pedump.c:61
#define __GNU_EXTENSION
Definition: ntdddisk.h:31
struct _SET_DISK_ATTRIBUTES SET_DISK_ATTRIBUTES
struct _PARTITION_INFORMATION_MBR PARTITION_INFORMATION_MBR
PARTITION_STYLE PartitionStyle
Definition: ntdddisk.h:619
LARGE_INTEGER StartingUsableOffset
Definition: ntdddisk.h:561
struct _DRIVE_LAYOUT_INFORMATION * PDRIVE_LAYOUT_INFORMATION
struct _SET_PARTITION_INFORMATION_EX SET_PARTITION_INFORMATION_EX
SET_PARTITION_INFORMATION_GPT Gpt
Definition: ntdddisk.h:622
struct _GET_DISK_ATTRIBUTES GET_DISK_ATTRIBUTES
_DETECTION_TYPE
Definition: ntdddisk.h:401
LARGE_INTEGER CopyLength
Definition: ntdddisk.h:816
ULONGLONG Attributes
Definition: ntdddisk.h:871
UCHAR bCylHighReg
Definition: helper.h:13
struct _DISK_CONTROLLER_NUMBER * PDISK_CONTROLLER_NUMBER
DISK_SNAPSHOT_STATE State
Definition: ntdddisk.h:903
LARGE_INTEGER FlushTime
Definition: ntdddisk.h:952
struct _REASSIGN_BLOCKS * PREASSIGN_BLOCKS
struct _FORMAT_EX_PARAMETERS * PFORMAT_EX_PARAMETERS
struct _SET_PARTITION_INFORMATION SET_PARTITION_INFORMATION
enum _DISK_SNAPSHOT_STATE * PDISK_SNAPSHOT_STATE
UCHAR bBuffer[1]
Definition: helper.h:27
LARGE_INTEGER SourceOffset
Definition: ntdddisk.h:814
WCHAR StorageManagerName[8]
Definition: ntdddisk.h:521
struct _DISK_SAN_SETTINGS DISK_SAN_SETTINGS
PARTITION_INFORMATION_EX PartitionEntry[1]
Definition: ntdddisk.h:573
USHORT Reserved
Definition: ntdddisk.h:600
struct _DRIVE_LAYOUT_INFORMATION_GPT DRIVE_LAYOUT_INFORMATION_GPT
struct _DISK_PARTITION_INFO::@3103::@3104 Mbr
unsigned int ULONG
Definition: retypes.h:1
struct _MAPPED_ADDRESS * PMAPPED_ADDRESS
ULONG ExSectorsPerTrack
Definition: ntdddisk.h:420
LARGE_INTEGER UsableLength
Definition: ntdddisk.h:562
LARGE_INTEGER CreationTimeStamp
Definition: ntdddisk.h:907
struct _DISK_GEOMETRY_EX * PDISK_GEOMETRY_EX
_ANONYMOUS_UNION union _SET_PARTITION_INFORMATION_EX::@3109 DUMMYUNIONNAME
BOOLEAN RecognizedPartition
Definition: ntdddisk.h:474
_ANONYMOUS_STRUCT struct _DISK_DETECTION_INFO::@3101::@3102 DUMMYSTRUCTNAME
ULONG EndCylinderNumber
Definition: ntdddisk.h:590
struct _DISK_INT13_INFO * PDISK_INT13_INFO
struct _DISK_SAN_SETTINGS * PDISK_SAN_SETTINGS
ULONG StorageDeviceNumber
Definition: ntdddisk.h:520
struct _DRIVERSTATUS DRIVERSTATUS
UCHAR bDriveNumber
Definition: helper.h:33
struct _DISK_DETECTION_INFO * PDISK_DETECTION_INFO
ULONG SizeOfPartitionInfo
Definition: ntdddisk.h:496
struct _DISK_INT13_INFO DISK_INT13_INFO
DRIVE_LAYOUT_INFORMATION_GPT Gpt
Definition: ntdddisk.h:571
ULONG BlockNumber[1]
Definition: ntdddisk.h:602
static const WCHAR Signature[]
Definition: parser.c:141
Definition: helper.h:8
struct _FORMAT_EX_PARAMETERS FORMAT_EX_PARAMETERS
PARTITION_STYLE PartitionStyle
Definition: ntdddisk.h:497
DISK_CACHE_RETENTION_PRIORITY
Definition: winioctl.h:259
struct _DRIVE_LAYOUT_INFORMATION_MBR * PDRIVE_LAYOUT_INFORMATION_MBR
DISK_PERFORMANCE_TYPE Type
Definition: ntdddisk.h:941
enum _DISK_SAN_POLICY DISK_SAN_POLICY
struct _DRIVE_LAYOUT_INFORMATION_EX * PDRIVE_LAYOUT_INFORMATION_EX
DISK_PERFORMANCE_TYPE Type
Definition: ntdddisk.h:946
ULONGLONG AttributesMask
Definition: ntdddisk.h:872
struct CREATE_DISK_GPT * PCREATE_DISK_GPT
struct _DISK_GROW_PARTITION DISK_GROW_PARTITION
struct _SET_PARTITION_INFORMATION * PSET_PARTITION_INFORMATION
struct _DISK_SNAPSHOT_INFO * PDISK_SNAPSHOT_INFO
UCHAR AdditionalData[ANYSIZE_ARRAY]
Definition: ntdddisk.h:911
struct _DISK_CACHE_INFORMATION::@3272::@3275 BlockPrefetch
ULONG StartHeadNumber
Definition: ntdddisk.h:591
ULONG cBufferSize
Definition: helper.h:25
LARGE_INTEGER StartingOffset
Definition: ntdddisk.h:627
DISK_SAN_POLICY SanPolicy
Definition: ntdddisk.h:890