ReactOS  0.4.15-dev-1018-g0695ecb
ntddstor.h
Go to the documentation of this file.
1 /*
2  * ntddstor.h
3  *
4  * Storage class 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 _NTDDSTOR_H_
24 #define _NTDDSTOR_H_
25 
26 #ifdef __cplusplus
27 extern "C" {
28 #endif
29 
30 #if defined(DEFINE_GUID)
31 
32 DEFINE_GUID(GUID_DEVINTERFACE_DISK,
33  0x53f56307L, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);
34 
35 DEFINE_GUID(GUID_DEVINTERFACE_CDROM,
36  0x53f56308L, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);
37 
38 DEFINE_GUID(GUID_DEVINTERFACE_PARTITION,
39  0x53f5630aL, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);
40 
41 DEFINE_GUID(GUID_DEVINTERFACE_TAPE,
42  0x53f5630bL, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);
43 
44 DEFINE_GUID(GUID_DEVINTERFACE_WRITEONCEDISK,
45  0x53f5630cL, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);
46 
47 DEFINE_GUID(GUID_DEVINTERFACE_VOLUME,
48  0x53f5630dL, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);
49 
50 DEFINE_GUID(GUID_DEVINTERFACE_MEDIUMCHANGER,
51  0x53f56310L, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);
52 
53 DEFINE_GUID(GUID_DEVINTERFACE_FLOPPY,
54  0x53f56311L, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);
55 
56 DEFINE_GUID(GUID_DEVINTERFACE_CDCHANGER,
57  0x53f56312L, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);
58 
59 DEFINE_GUID(GUID_DEVINTERFACE_STORAGEPORT,
60  0x2accfe60L, 0xc130, 0x11d2, 0xb0, 0x82, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);
61 
62 DEFINE_GUID(GUID_DEVINTERFACE_HIDDEN_VOLUME,
63  0x7f108a28L, 0x9833, 0x4b3b, 0xb7, 0x80, 0x2c, 0x6b, 0x5f, 0xa5, 0xc0, 0x62);
64 
65 #define WDI_STORAGE_PREDICT_FAILURE_DPS_GUID \
66  {0xe9f2d03aL, 0x747c, 0x41c2, {0xbb, 0x9a, 0x02, 0xc6, 0x2b, 0x6d, 0x5f, 0xcb}};
67 
68 /* Aliases for storage guids */
69 #define DiskClassGuid GUID_DEVINTERFACE_DISK
70 #define CdRomClassGuid GUID_DEVINTERFACE_CDROM
71 #define PartitionClassGuid GUID_DEVINTERFACE_PARTITION
72 #define TapeClassGuid GUID_DEVINTERFACE_TAPE
73 #define WriteOnceDiskClassGuid GUID_DEVINTERFACE_WRITEONCEDISK
74 #define VolumeClassGuid GUID_DEVINTERFACE_VOLUME
75 #define MediumChangerClassGuid GUID_DEVINTERFACE_MEDIUMCHANGER
76 #define FloppyClassGuid GUID_DEVINTERFACE_FLOPPY
77 #define CdChangerClassGuid GUID_DEVINTERFACE_CDCHANGER
78 #define StoragePortClassGuid GUID_DEVINTERFACE_STORAGEPORT
79 #define HiddenVolumeClassGuid GUID_DEVINTERFACE_HIDDEN_VOLUME
80 
81 #endif /* defined(DEFINE_GUID) */
82 
83 #ifndef _WINIOCTL_
84 
85 #define IOCTL_STORAGE_BASE FILE_DEVICE_MASS_STORAGE
86 
87 #define IOCTL_STORAGE_CHECK_VERIFY \
88  CTL_CODE(IOCTL_STORAGE_BASE, 0x0200, METHOD_BUFFERED, FILE_READ_ACCESS)
89 
90 #define IOCTL_STORAGE_CHECK_VERIFY2 \
91  CTL_CODE(IOCTL_STORAGE_BASE, 0x0200, METHOD_BUFFERED, FILE_ANY_ACCESS)
92 
93 #define IOCTL_STORAGE_MEDIA_REMOVAL \
94  CTL_CODE(IOCTL_STORAGE_BASE, 0x0201, METHOD_BUFFERED, FILE_READ_ACCESS)
95 
96 #define IOCTL_STORAGE_EJECT_MEDIA \
97  CTL_CODE(IOCTL_STORAGE_BASE, 0x0202, METHOD_BUFFERED, FILE_READ_ACCESS)
98 
99 #define IOCTL_STORAGE_LOAD_MEDIA \
100  CTL_CODE(IOCTL_STORAGE_BASE, 0x0203, METHOD_BUFFERED, FILE_READ_ACCESS)
101 
102 #define IOCTL_STORAGE_LOAD_MEDIA2 \
103  CTL_CODE(IOCTL_STORAGE_BASE, 0x0203, METHOD_BUFFERED, FILE_ANY_ACCESS)
104 
105 #define IOCTL_STORAGE_RESERVE \
106  CTL_CODE(IOCTL_STORAGE_BASE, 0x0204, METHOD_BUFFERED, FILE_READ_ACCESS)
107 
108 #define IOCTL_STORAGE_RELEASE \
109  CTL_CODE(IOCTL_STORAGE_BASE, 0x0205, METHOD_BUFFERED, FILE_READ_ACCESS)
110 
111 #define IOCTL_STORAGE_FIND_NEW_DEVICES \
112  CTL_CODE(IOCTL_STORAGE_BASE, 0x0206, METHOD_BUFFERED, FILE_READ_ACCESS)
113 
114 #define IOCTL_STORAGE_EJECTION_CONTROL \
115  CTL_CODE(IOCTL_STORAGE_BASE, 0x0250, METHOD_BUFFERED, FILE_ANY_ACCESS)
116 
117 #define IOCTL_STORAGE_MCN_CONTROL \
118  CTL_CODE(IOCTL_STORAGE_BASE, 0x0251, METHOD_BUFFERED, FILE_ANY_ACCESS)
119 
120 #define IOCTL_STORAGE_GET_MEDIA_TYPES \
121  CTL_CODE(IOCTL_STORAGE_BASE, 0x0300, METHOD_BUFFERED, FILE_ANY_ACCESS)
122 
123 #define IOCTL_STORAGE_GET_MEDIA_TYPES_EX \
124  CTL_CODE(IOCTL_STORAGE_BASE, 0x0301, METHOD_BUFFERED, FILE_ANY_ACCESS)
125 
126 #define IOCTL_STORAGE_RESET_BUS \
127  CTL_CODE(IOCTL_STORAGE_BASE, 0x0400, METHOD_BUFFERED, FILE_READ_ACCESS)
128 
129 #define IOCTL_STORAGE_RESET_DEVICE \
130  CTL_CODE(IOCTL_STORAGE_BASE, 0x0401, METHOD_BUFFERED, FILE_READ_ACCESS)
131 
132 #define IOCTL_STORAGE_GET_DEVICE_NUMBER \
133  CTL_CODE(IOCTL_STORAGE_BASE, 0x0420, METHOD_BUFFERED, FILE_ANY_ACCESS)
134 
135 #define IOCTL_STORAGE_PREDICT_FAILURE \
136  CTL_CODE(IOCTL_STORAGE_BASE, 0x0440, METHOD_BUFFERED, FILE_ANY_ACCESS)
137 
138 #endif /* _WINIOCTL_ */
139 
140 #define IOCTL_STORAGE_GET_MEDIA_SERIAL_NUMBER \
141  CTL_CODE(IOCTL_STORAGE_BASE, 0x0304, METHOD_BUFFERED, FILE_ANY_ACCESS)
142 
143 #define IOCTL_STORAGE_GET_HOTPLUG_INFO \
144  CTL_CODE(IOCTL_STORAGE_BASE, 0x0305, METHOD_BUFFERED, FILE_ANY_ACCESS)
145 
146 #define IOCTL_STORAGE_SET_HOTPLUG_INFO \
147  CTL_CODE(IOCTL_STORAGE_BASE, 0x0306, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
148 
149 #define OBSOLETE_IOCTL_STORAGE_RESET_BUS \
150  CTL_CODE(IOCTL_STORAGE_BASE, 0x0400, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
151 
152 #define OBSOLETE_IOCTL_STORAGE_RESET_DEVICE \
153  CTL_CODE(IOCTL_STORAGE_BASE, 0x0401, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
154 
155 #define IOCTL_STORAGE_BREAK_RESERVATION \
156  CTL_CODE(IOCTL_STORAGE_BASE, 0x0405, METHOD_BUFFERED, FILE_READ_ACCESS)
157 
158 #define IOCTL_STORAGE_PERSISTENT_RESERVE_IN \
159  CTL_CODE(IOCTL_STORAGE_BASE, 0x0406, METHOD_BUFFERED, FILE_READ_ACCESS)
160 
161 #define IOCTL_STORAGE_PERSISTENT_RESERVE_OUT \
162  CTL_CODE(IOCTL_STORAGE_BASE, 0x0407, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
163 
164 #define IOCTL_STORAGE_READ_CAPACITY \
165  CTL_CODE(IOCTL_STORAGE_BASE, 0x0450, METHOD_BUFFERED, FILE_READ_ACCESS)
166 
167 #define IOCTL_STORAGE_QUERY_PROPERTY \
168  CTL_CODE(IOCTL_STORAGE_BASE, 0x0500, METHOD_BUFFERED, FILE_ANY_ACCESS)
169 
170 #define IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES \
171  CTL_CODE(IOCTL_STORAGE_BASE, 0x0501, METHOD_BUFFERED, FILE_WRITE_ACCESS)
172 
173 #define IOCTL_STORAGE_GET_LB_PROVISIONING_MAP_RESOURCES \
174  CTL_CODE(IOCTL_STORAGE_BASE, 0x0502, METHOD_BUFFERED, FILE_READ_ACCESS)
175 
176 #define IOCTL_STORAGE_GET_BC_PROPERTIES \
177  CTL_CODE(IOCTL_STORAGE_BASE, 0x0600, METHOD_BUFFERED, FILE_READ_ACCESS)
178 
179 #define IOCTL_STORAGE_ALLOCATE_BC_STREAM \
180  CTL_CODE(IOCTL_STORAGE_BASE, 0x0601, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
181 
182 #define IOCTL_STORAGE_FREE_BC_STREAM \
183  CTL_CODE(IOCTL_STORAGE_BASE, 0x0602, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
184 
185 #define IOCTL_STORAGE_CHECK_PRIORITY_HINT_SUPPORT \
186  CTL_CODE(IOCTL_STORAGE_BASE, 0x0620, METHOD_BUFFERED, FILE_ANY_ACCESS)
187 
188 #define IOCTL_STORAGE_START_DATA_INTEGRITY_CHECK \
189  CTL_CODE(IOCTL_STORAGE_BASE, 0x0621, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
190 
191 #define IOCTL_STORAGE_STOP_DATA_INTEGRITY_CHECK \
192  CTL_CODE(IOCTL_STORAGE_BASE, 0x0622, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
193 
194 #define IOCTL_STORAGE_FIRMWARE_GET_INFO \
195  CTL_CODE(IOCTL_STORAGE_BASE, 0x0700, METHOD_BUFFERED, FILE_ANY_ACCESS)
196 
197 #define IOCTL_STORAGE_FIRMWARE_DOWNLOAD \
198  CTL_CODE(IOCTL_STORAGE_BASE, 0x0701, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
199 
200 #define IOCTL_STORAGE_FIRMWARE_ACTIVATE \
201  CTL_CODE(IOCTL_STORAGE_BASE, 0x0702, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
202 
203 #define IOCTL_STORAGE_ENABLE_IDLE_POWER \
204  CTL_CODE(IOCTL_STORAGE_BASE, 0x0720, METHOD_BUFFERED, FILE_ANY_ACCESS)
205 
206 #define IOCTL_STORAGE_GET_IDLE_POWERUP_REASON \
207  CTL_CODE(IOCTL_STORAGE_BASE, 0x0721, METHOD_BUFFERED, FILE_ANY_ACCESS)
208 
209 #define IOCTL_STORAGE_POWER_ACTIVE \
210  CTL_CODE(IOCTL_STORAGE_BASE, 0x0722, METHOD_BUFFERED, FILE_ANY_ACCESS)
211 
212 #define IOCTL_STORAGE_POWER_IDLE \
213  CTL_CODE(IOCTL_STORAGE_BASE, 0x0723, METHOD_BUFFERED, FILE_ANY_ACCESS)
214 
215 #define IOCTL_STORAGE_EVENT_NOTIFICATION \
216  CTL_CODE(IOCTL_STORAGE_BASE, 0x0724, METHOD_BUFFERED, FILE_ANY_ACCESS)
217 
218 #define IOCTL_STORAGE_DEVICE_POWER_CAP \
219  CTL_CODE(IOCTL_STORAGE_BASE, 0x0725, METHOD_BUFFERED, FILE_ANY_ACCESS)
220 
221 #define IOCTL_STORAGE_RPMB_COMMAND \
222  CTL_CODE(IOCTL_STORAGE_BASE, 0x0726, METHOD_BUFFERED, FILE_ANY_ACCESS)
223 
224 #define IOCTL_STORAGE_ATTRIBUTE_MANAGEMENT \
225  CTL_CODE(IOCTL_STORAGE_BASE, 0x0727, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
226 
227 #define IOCTL_STORAGE_DIAGNOSTIC \
228  CTL_CODE(IOCTL_STORAGE_BASE, 0x0728, METHOD_BUFFERED, FILE_ANY_ACCESS)
229 
230 #define IOCTL_STORAGE_GET_PHYSICAL_ELEMENT_STATUS \
231  CTL_CODE(IOCTL_STORAGE_BASE, 0x0729, METHOD_BUFFERED, FILE_ANY_ACCESS)
232 
233 #define IOCTL_STORAGE_REMOVE_ELEMENT_AND_TRUNCATE \
234  CTL_CODE(IOCTL_STORAGE_BASE, 0x0730, METHOD_BUFFERED, FILE_ANY_ACCESS)
235 
236 #define IOCTL_STORAGE_GET_DEVICE_INTERNAL_LOG \
237  CTL_CODE(IOCTL_STORAGE_BASE, 0x0731, METHOD_BUFFERED, FILE_ANY_ACCESS)
238 
239 #define RECOVERED_WRITES_VALID 0x00000001
240 #define UNRECOVERED_WRITES_VALID 0x00000002
241 #define RECOVERED_READS_VALID 0x00000004
242 #define UNRECOVERED_READS_VALID 0x00000008
243 #define WRITE_COMPRESSION_INFO_VALID 0x00000010
244 #define READ_COMPRESSION_INFO_VALID 0x00000020
245 
246 #define TAPE_RETURN_STATISTICS 0L
247 #define TAPE_RETURN_ENV_INFO 1L
248 #define TAPE_RESET_STATISTICS 2L
249 
250 /* DEVICE_MEDIA_INFO.DeviceSpecific.DiskInfo.MediaCharacteristics constants */
251 #define MEDIA_ERASEABLE 0x00000001
252 #define MEDIA_WRITE_ONCE 0x00000002
253 #define MEDIA_READ_ONLY 0x00000004
254 #define MEDIA_READ_WRITE 0x00000008
255 #define MEDIA_WRITE_PROTECTED 0x00000100
256 #define MEDIA_CURRENTLY_MOUNTED 0x80000000
257 
258 #define StorageIdTypeNAA StorageIdTypeFCPHName
259 
260 #define DeviceDsmActionFlag_NonDestructive 0x80000000
261 
262 #define IsDsmActionNonDestructive(_Action) ((BOOLEAN)((_Action & DeviceDsmActionFlag_NonDestructive) != 0))
263 
264 #define DeviceDsmAction_None 0x0u
265 #define DeviceDsmAction_Trim 0x1u
266 #define DeviceDsmAction_Notification (0x00000002u | DeviceDsmActionFlag_NonDestructive)
267 #define DeviceDsmAction_OffloadRead (0x00000003u | DeviceDsmActionFlag_NonDestructive)
268 #define DeviceDsmAction_OffloadWrite (0x00000004u)
269 #define DeviceDsmAction_Allocation (0x00000005u | DeviceDsmActionFlag_NonDestructive)
270 #define DeviceDsmAction_Repair (0x00000006u | DeviceDsmActionFlag_NonDestructive)
271 #define DeviceDsmAction_Scrub (0x00000007u | DeviceDsmActionFlag_NonDestructive)
272 #define DeviceDsmAction_DrtQuery (0x00000008u | DeviceDsmActionFlag_NonDestructive)
273 #define DeviceDsmAction_DrtClear (0x00000009u | DeviceDsmActionFlag_NonDestructive)
274 #define DeviceDsmAction_DrtDisable (0x0000000Au | DeviceDsmActionFlag_NonDestructive)
275 #define DeviceDsmAction_TieringQuery (0x0000000Bu | DeviceDsmActionFlag_NonDestructive)
276 #define DeviceDsmAction_Map (0x0000000Cu | DeviceDsmActionFlag_NonDestructive)
277 #define DeviceDsmAction_RegenerateParity (0x0000000Du | DeviceDsmActionFlag_NonDestructive)
278 #define DeviceDsmAction_NvCache_Change_Priority (0x0000000Eu | DeviceDsmActionFlag_NonDestructive)
279 #define DeviceDsmAction_NvCache_Evict (0x0000000Fu | DeviceDsmActionFlag_NonDestructive)
280 #define DeviceDsmAction_TopologyIdQuery (0x00000010u | DeviceDsmActionFlag_NonDestructive)
281 #define DeviceDsmAction_GetPhysicalAddresses (0x00000011u | DeviceDsmActionFlag_NonDestructive)
282 #define DeviceDsmAction_ScopeRegen (0x00000012u | DeviceDsmActionFlag_NonDestructive)
283 #define DeviceDsmAction_ReportZones (0x00000013u | DeviceDsmActionFlag_NonDestructive)
284 #define DeviceDsmAction_OpenZone (0x00000014u | DeviceDsmActionFlag_NonDestructive)
285 #define DeviceDsmAction_FinishZone (0x00000015u | DeviceDsmActionFlag_NonDestructive)
286 #define DeviceDsmAction_CloseZone (0x00000016u | DeviceDsmActionFlag_NonDestructive)
287 #define DeviceDsmAction_ResetWritePointer (0x00000017u)
288 #define DeviceDsmAction_GetRangeErrorInfo (0x00000018u | DeviceDsmActionFlag_NonDestructive)
289 #define DeviceDsmAction_WriteZeroes (0x00000019u)
290 #define DeviceDsmAction_LostQuery (0x0000001Au | DeviceDsmActionFlag_NonDestructive)
291 #define DeviceDsmAction_GetFreeSpace (0x0000001Bu | DeviceDsmActionFlag_NonDestructive)
292 #define DeviceDsmAction_ConversionQuery (0x0000001Cu | DeviceDsmActionFlag_NonDestructive)
293 #define DeviceDsmAction_VdtSet (0x0000001Du)
294 
295 #define DEVICE_DSM_FLAG_ENTIRE_DATA_SET_RANGE 0x00000001
296 
297 #define DEVICE_DSM_NOTIFY_FLAG_BEGIN 0x00000001
298 #define DEVICE_DSM_NOTIFY_FLAG_END 0x00000002
299 
300 #define IOCTL_STORAGE_BC_VERSION 1
301 
302 #define STORAGE_PRIORITY_HINT_SUPPORTED 0x0001
303 
304 typedef struct _STORAGE_HOTPLUG_INFO {
305  ULONG Size;
311 
312 typedef struct _STORAGE_DEVICE_NUMBER {
317 
321 
329 
330 #ifndef _WINIOCTL_
331 typedef struct _PREVENT_MEDIA_REMOVAL {
334 #endif
335 
340 
341 typedef struct _TAPE_STATISTICS {
351 
352 typedef struct _TAPE_GET_STATISTICS {
355 
356 typedef enum _STORAGE_MEDIA_TYPE {
357  DDS_4mm = 0x20,
410 #if (NTDDI_VERSION < NTDDI_WINXP)
411  STK_EAGLE,
412 #else
414 #endif
425 
426 typedef enum _STORAGE_BUS_TYPE {
446 
447 typedef struct _DEVICE_MEDIA_INFO {
448  union {
449  struct {
457  } DiskInfo;
458  struct {
467  struct {
472  union {
473  struct {
476  } ScsiInformation;
477  } BusSpecificData;
478  } TapeInfo;
479  } DeviceSpecific;
481 
482 typedef struct _GET_MEDIA_TYPES {
487 
488 typedef struct _STORAGE_PREDICT_FAILURE {
492 
493 typedef enum _STORAGE_QUERY_TYPE {
499 
500 typedef enum _STORAGE_PROPERTY_ID {
539 
540 typedef struct _STORAGE_PROPERTY_QUERY {
545 
546 typedef _Struct_size_bytes_(Size) struct _STORAGE_DESCRIPTOR_HEADER {
547  ULONG Version;
548  ULONG Size;
550 
551 typedef _Struct_size_bytes_(Size) struct _STORAGE_DEVICE_DESCRIPTOR {
552  ULONG Version;
553  ULONG Size;
555  UCHAR DeviceTypeModifier;
557  BOOLEAN CommandQueueing;
558  ULONG VendorIdOffset;
559  ULONG ProductIdOffset;
560  ULONG ProductRevisionOffset;
561  ULONG SerialNumberOffset;
563  ULONG RawPropertiesLength;
564  UCHAR RawDeviceProperties[1];
566 
567 typedef _Struct_size_bytes_(Size) struct _STORAGE_ADAPTER_DESCRIPTOR {
568  ULONG Version;
569  ULONG Size;
570  ULONG MaximumTransferLength;
571  ULONG MaximumPhysicalPages;
572  ULONG AlignmentMask;
573  BOOLEAN AdapterUsesPio;
574  BOOLEAN AdapterScansDown;
575  BOOLEAN CommandQueueing;
576  BOOLEAN AcceleratedTransfer;
577 #if (NTDDI_VERSION < NTDDI_WINXP)
579 #else
580  UCHAR BusType;
581 #endif
582  USHORT BusMajorVersion;
583  USHORT BusMinorVersion;
584 #if (NTDDI_VERSION >= NTDDI_WIN8)
585  UCHAR SrbType;
586  UCHAR AddressType;
587 #endif
589 
590 typedef _Struct_size_bytes_(Size) struct _STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR {
591  ULONG Version;
592  ULONG Size;
593  ULONG BytesPerCacheLine;
594  ULONG BytesOffsetForCacheAlignment;
595  ULONG BytesPerLogicalSector;
596  ULONG BytesPerPhysicalSector;
597  ULONG BytesOffsetForSectorAlignment;
599 
600 typedef _Struct_size_bytes_(Size) struct _STORAGE_MEDIUM_PRODUCT_TYPE_DESCRIPTOR {
601  ULONG Version;
602  ULONG Size;
603  ULONG MediumProductType;
605 
616 
623 #if (NTDDI_VERSION >= NTDDI_WIN8)
625 #endif
626 #if (NTDDI_VERSION >= NTDDI_WINBLUE)
630 #endif
632 
644 #if (NTDDI_VERSION >= NTDDI_WINBLUE)
647 #endif
649 
650 #define DEVICE_LB_PROVISIONING_DESCRIPTOR_V1_SIZE RTL_SIZEOF_THROUGH_FIELD(DEVICE_LB_PROVISIONING_DESCRIPTOR, UnmapGranularityAlignment)
651 
652 typedef struct _DEVICE_POWER_DESCRIPTOR {
664 
678 
679 typedef _Struct_size_bytes_(Size) struct _STORAGE_DEVICE_IO_CAPABILITY_DESCRIPTOR {
680  ULONG Version;
681  ULONG Size;
682  ULONG LunMaxIoCount;
683  ULONG AdapterMaxIoCount;
685 
692 
704 
710 
716 
717 typedef struct _STORAGE_IDENTIFIER {
725 
726 typedef _Struct_size_bytes_(Size) struct _STORAGE_DEVICE_ID_DESCRIPTOR {
727  ULONG Version;
728  ULONG Size;
729  ULONG NumberOfIdentifiers;
730  UCHAR Identifiers[1];
732 
738 
744 
745 typedef struct _DEVICE_TRIM_DESCRIPTOR {
750 
752 
753 #define DEVICE_DSM_FLAG_TRIM_NOT_FS_ALLOCATED 0x80000000
754 
755 typedef struct _DEVICE_DATA_SET_RANGE {
759 
769 
776 
785 
796 
801 
805 
806 #ifdef _MSC_VER
807 #pragma warning(push)
808 #pragma warning(disable:4200)
809 #endif
810 
811 #if defined(_MSC_EXTENSIONS)
812 
813 typedef struct _STORAGE_MEDIA_SERIAL_NUMBER_DATA {
815  USHORT SerialNumberLength;
816  UCHAR SerialNumber[0];
817 } STORAGE_MEDIA_SERIAL_NUMBER_DATA, *PSTORAGE_MEDIA_SERIAL_NUMBER_DATA;
818 
819 typedef struct _PERSISTENT_RESERVE_COMMAND {
820  ULONG Version;
821  ULONG Size;
822  __MINGW_EXTENSION union {
823  struct {
824  UCHAR ServiceAction:5;
825  UCHAR Reserved1:3;
826  USHORT AllocationLength;
827  } PR_IN;
828  struct {
829  UCHAR ServiceAction:5;
830  UCHAR Reserved1:3;
831  UCHAR Type:4;
832  UCHAR Scope:4;
833  UCHAR ParameterList[0];
834  } PR_OUT;
835  } DUMMYUNIONNAME;
836 } PERSISTENT_RESERVE_COMMAND, *PPERSISTENT_RESERVE_COMMAND;
837 
838 #endif /* defined(_MSC_EXTENSIONS) */
839 
840 #ifdef _MSC_VER
841 #pragma warning(pop) /* disable:4200 */
842 #endif
843 
844 typedef _Struct_size_bytes_(Size) struct _STORAGE_READ_CAPACITY {
845  ULONG Version;
846  ULONG Size;
847  ULONG BlockLength;
848  LARGE_INTEGER NumberOfBlocks;
849  LARGE_INTEGER DiskLength;
851 
852 typedef enum _WRITE_CACHE_TYPE {
858 
859 typedef enum _WRITE_CACHE_ENABLE {
864 
865 typedef enum _WRITE_CACHE_CHANGE {
870 
871 typedef enum _WRITE_THROUGH {
875 } WRITE_THROUGH;
876 
877 typedef _Struct_size_bytes_(Size) struct _STORAGE_WRITE_CACHE_PROPERTY {
878  ULONG Version;
879  ULONG Size;
880  WRITE_CACHE_TYPE WriteCacheType;
884  BOOLEAN FlushCacheSupported;
885  BOOLEAN UserDefinedPowerProtection;
886  BOOLEAN NVCacheEnabled;
888 
903 
915 
926 
927 #define DEVICE_DSM_ALLOCATION_OUTPUT_V1 (sizeof(DEVICE_DSM_ALLOCATION_OUTPUT))
928 #define DEVICE_DATA_SET_LB_PROVISIONING_STATE_VERSION_V1 DEVICE_DSM_ALLOCATION_OUTPUT_V1
929 
940 
941 #define DEVICE_DSM_ALLOCATION_OUTPUT_V2 (sizeof(DEVICE_DSM_ALLOCATION_OUTPUT2))
942 #define DEVICE_DATA_SET_LB_PROVISIONING_STATE_VERSION_V2 DEVICE_DSM_ALLOCATION_OUTPUT_V2
943 
944 #define DeviceDsmDefinition_Allocation {DeviceDsmAction_Allocation, \
945  TRUE, \
946  __alignof(DEVICE_DSM_ALLOCATION_PARAMETERS), \
947  sizeof(DEVICE_DSM_ALLOCATION_PARAMETERS), \
948  TRUE, \
949  __alignof(DEVICE_DSM_ALLOCATION_OUTPUT2), \
950  sizeof(DEVICE_DSM_ALLOCATION_OUTPUT2)}
951 
952 #define DEVICE_DSM_FLAG_ALLOCATION_CONSOLIDATEABLE_ONLY 0x40000000
953 
961 
967 
968 #define STORAGE_EVENT_NOTIFICATION_VERSION_V1 1
969 
970 #define STORAGE_EVENT_MEDIA_STATUS 0x0000000000000001
971 #define STORAGE_EVENT_DEVICE_STATUS 0x0000000000000002
972 #define STORAGE_EVENT_DEVICE_OPERATION 0x0000000000000004
973 #define STORAGE_EVENT_ALL (STORAGE_EVENT_MEDIA_STATUS | STORAGE_EVENT_DEVICE_STATUS | STORAGE_EVENT_DEVICE_OPERATION)
974 
975 #define STORAGE_OFFLOAD_MAX_TOKEN_LENGTH 512
976 #define STORAGE_OFFLOAD_TOKEN_ID_LENGTH 0x1F8
977 #define STORAGE_OFFLOAD_TOKEN_TYPE_ZERO_DATA 0xFFFF0001
978 
979 typedef struct _STORAGE_OFFLOAD_TOKEN {
983  union {
984  struct {
988  } DUMMYUNIONNAME;
990 
991 #define MAKE_ZERO_TOKEN(T) ( \
992  ((PSTORAGE_OFFLOAD_TOKEN)T)->TokenType[0] = 0xFF, \
993  ((PSTORAGE_OFFLOAD_TOKEN)T)->TokenType[1] = 0xFF, \
994  ((PSTORAGE_OFFLOAD_TOKEN)T)->TokenType[2] = 0x00, \
995  ((PSTORAGE_OFFLOAD_TOKEN)T)->TokenType[3] = 0x01, \
996  ((PSTORAGE_OFFLOAD_TOKEN)T)->TokenIdLength[0] = 0x01, \
997  ((PSTORAGE_OFFLOAD_TOKEN)T)->TokenIdLength[1] = 0xF8 \
998 )
999 
1000 #define IS_ZERO_TOKEN(T) ( \
1001  (((PSTORAGE_OFFLOAD_TOKEN)T)->TokenType[0] == 0xFF && \
1002  ((PSTORAGE_OFFLOAD_TOKEN)T)->TokenType[1] == 0xFF && \
1003  ((PSTORAGE_OFFLOAD_TOKEN)T)->TokenType[2] == 0x00 && \
1004  ((PSTORAGE_OFFLOAD_TOKEN)T)->TokenType[3] == 0x01 && \
1005  ((PSTORAGE_OFFLOAD_TOKEN)T)->TokenIdLength[0] == 0x01 && \
1006  ((PSTORAGE_OFFLOAD_TOKEN)T)->TokenIdLength[1] == 0xF8) \
1007 )
1008 
1014 
1015 #define STORAGE_OFFLOAD_READ_RANGE_TRUNCATED 0x00000001
1016 
1024 
1025 #define DeviceDsmDefinition_OffloadRead {DeviceDsmAction_OffloadRead, \
1026  FALSE, \
1027  __alignof(DEVICE_DSM_OFFLOAD_READ_PARAMETERS), \
1028  sizeof(DEVICE_DSM_OFFLOAD_READ_PARAMETERS), \
1029  FALSE, \
1030  __alignof(STORAGE_OFFLOAD_READ_OUTPUT), \
1031  sizeof(STORAGE_OFFLOAD_READ_OUTPUT)}
1032 
1039 
1040 #define STORAGE_OFFLOAD_WRITE_RANGE_TRUNCATED 0x0001
1041 #define STORAGE_OFFLOAD_TOKEN_INVALID 0x0002
1042 
1048 
1049 #define DeviceDsmDefinition_OffloadWrite {DeviceDsmAction_OffloadWrite, \
1050  FALSE, \
1051  __alignof(DEVICE_DSM_OFFLOAD_WRITE_PARAMETERS), \
1052  sizeof(DEVICE_DSM_OFFLOAD_WRITE_PARAMETERS), \
1053  FALSE, \
1054  __alignof(STORAGE_OFFLOAD_WRITE_OUTPUT), \
1055  sizeof(STORAGE_OFFLOAD_WRITE_OUTPUT)}
1056 
1057 
1058 #define READ_COPY_NUMBER_KEY 0x52434e00 //'RCN'
1059 #define READ_COPY_NUMBER_BYPASS_CACHE_FLAG 0x00000100
1060 
1061 #define IsKeyReadCopyNumber(_k) (((_k) & 0xFFFFFE00) == READ_COPY_NUMBER_KEY)
1062 
1063 #define IsKeyReadCopyNumberBypassCache(_k) ((_k) & READ_COPY_NUMBER_BYPASS_CACHE_FLAG)
1064 #define SetReadCopyNumberBypassCacheToKey(_k) ((_k) |= READ_COPY_NUMBER_BYPASS_CACHE_FLAG)
1065 
1066 #define ReadCopyNumberToKey(_c) (READ_COPY_NUMBER_KEY | (UCHAR)(_c))
1067 #define ReadCopyNumberFromKey(_k) (UCHAR)((_k) & 0x000000FF)
1068 
1069 typedef struct _STORAGE_IDLE_POWER {
1077 
1078 #ifdef __cplusplus
1079 }
1080 #endif
1081 
1082 #endif /* _NTDDSTOR_H_ */
DEVICE_TYPE DeviceType
Definition: ntddstor.h:313
union _STORAGE_OFFLOAD_TOKEN::@3120 DUMMYUNIONNAME
struct _STORAGE_PRIORITY_HINT_SUPPORT STORAGE_PRIORITY_HINT_SUPPORT
struct _STORAGE_ALLOCATE_BC_STREAM_OUTPUT STORAGE_ALLOCATE_BC_STREAM_OUTPUT
ULONG SectorsPerTrack
Definition: ntddstor.h:453
struct _DEVICE_TRIM_DESCRIPTOR DEVICE_TRIM_DESCRIPTOR
struct _DEVICE_DATA_SET_LB_PROVISIONING_STATE DEVICE_DSM_ALLOCATION_OUTPUT
enum _STORAGE_PROPERTY_ID STORAGE_PROPERTY_ID
* PSTORAGE_DESCRIPTOR_HEADER
Definition: ntddstor.h:549
* PSTORAGE_ADAPTER_DESCRIPTOR
Definition: ntddstor.h:588
IN PVOID IN PVOID IN USHORT Version
Definition: pci.h:361
enum _STORAGE_BUS_TYPE STORAGE_BUS_TYPE
* PSTORAGE_WRITE_CACHE_PROPERTY
Definition: ntddstor.h:887
Type
Definition: Type.h:6
_STORAGE_ASSOCIATION_TYPE
Definition: ntddstor.h:711
struct _DEVICE_DATA_SET_LB_PROVISIONING_STATE DEVICE_DATA_SET_LB_PROVISIONING_STATE
struct _DEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT DEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT
STORAGE_OFFLOAD_TOKEN Token
Definition: ntddstor.h:1022
Definition: ntddstor.h:422
struct _STORAGE_GET_BC_PROPERTIES_OUTPUT STORAGE_GET_BC_PROPERTIES_OUTPUT
#define ANYSIZE_ARRAY
Definition: typedefs.h:46
struct _TAPE_GET_STATISTICS * PTAPE_GET_STATISTICS
_In_opt_ PUNICODE_STRING _In_ PDRIVER_OBJECT _In_ PDEVICE_OBJECT _In_ INTERFACE_TYPE BusType
Definition: halfuncs.h:156
BOOLEAN DeviceHotplug
Definition: imports.h:248
struct _DEVICE_DATA_SET_LBP_STATE_PARAMETERS * PDEVICE_DSM_ALLOCATION_PARAMETERS
struct _DEVICE_DATA_SET_RANGE * PDEVICE_DATA_SET_RANGE
struct _DEVICE_COPY_OFFLOAD_DESCRIPTOR * PDEVICE_COPY_OFFLOAD_DESCRIPTOR
struct _DEVICE_COPY_OFFLOAD_DESCRIPTOR DEVICE_COPY_OFFLOAD_DESCRIPTOR
DeviceType
Definition: mmdrv.h:41
_WRITE_CACHE_ENABLE
Definition: ntddstor.h:859
struct _DEVICE_MEDIA_INFO::@3114::@3116 RemovableDiskInfo
struct _STORAGE_IDLE_POWER STORAGE_IDLE_POWER
LARGE_INTEGER UnrecoveredReads
Definition: ntddstor.h:347
UCHAR CompressionRatioReads
Definition: ntddstor.h:348
struct _STORAGE_EVENT_NOTIFICATION * PSTORAGE_EVENT_NOTIFICATION
* PSTORAGE_ACCESS_ALIGNMENT_DESCRIPTOR
Definition: ntddstor.h:598
struct _DEVICE_DATA_SET_LB_PROVISIONING_STATE * PDEVICE_DATA_SET_LB_PROVISIONING_STATE
STORAGE_IDENTIFIER_TYPE Type
Definition: ntddstor.h:719
typedef _Struct_size_bytes_(Size) struct _STORAGE_DESCRIPTOR_HEADER
Definition: ntddstor.h:546
struct _DEVICE_MANAGE_DATA_SET_ATTRIBUTES DEVICE_MANAGE_DATA_SET_ATTRIBUTES
USHORT IdentifierSize
Definition: ntddstor.h:720
UCHAR CompressionRatioWrites
Definition: ntddstor.h:349
_STORAGE_IDENTIFIER_CODE_SET
Definition: ntddstor.h:686
STORAGE_MEDIA_TYPE MediaType
Definition: ntddstor.h:451
struct _STORAGE_ALLOCATE_BC_STREAM_INPUT * PSTORAGE_ALLOCATE_BC_STREAM_INPUT
struct _STORAGE_MINIPORT_DESCRIPTOR * PSTORAGE_MINIPORT_DESCRIPTOR
struct _DEVICE_MEDIA_INFO::@3114::@3115 DiskInfo
_STORAGE_ID_NAA_FORMAT
Definition: ntddstor.h:705
#define DUMMYUNIONNAME
Definition: ntbasedef.h:32
* PSTORAGE_DEVICE_IO_CAPABILITY_DESCRIPTOR
Definition: ntddstor.h:684
struct _STORAGE_BUS_RESET_REQUEST * PSTORAGE_BUS_RESET_REQUEST
Definition: ntddstor.h:377
STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR
Definition: ntddstor.h:598
struct _DEVICE_LB_PROVISIONING_DESCRIPTOR DEVICE_LB_PROVISIONING_DESCRIPTOR
struct _DEVICE_DATA_SET_RANGE DEVICE_DATA_SET_RANGE
ULONG SlabAllocationBitMap[ANYSIZE_ARRAY]
Definition: ntddstor.h:937
struct _STORAGE_OFFLOAD_READ_OUTPUT * PSTORAGE_OFFLOAD_READ_OUTPUT
struct _STORAGE_PRIORITY_HINT_SUPPORT * PSTORAGE_PRIORITY_HINT_SUPPORT
enum _STORAGE_MEDIA_TYPE STORAGE_MEDIA_TYPE
LARGE_INTEGER RecoveredReads
Definition: ntddstor.h:346
struct _STORAGE_IDENTIFIER * PSTORAGE_IDENTIFIER
BOOLEAN AsynchronousNotificationSupported
Definition: ntddstor.h:656
DEVICE_DATA_MANAGEMENT_SET_ACTION Action
Definition: ntddstor.h:762
DEVICE_DATA_MANAGEMENT_SET_ACTION Action
Definition: ntddstor.h:906
struct _DEVICE_TRIM_DESCRIPTOR * PDEVICE_TRIM_DESCRIPTOR
struct _STORAGE_LB_PROVISIONING_MAP_RESOURCES STORAGE_LB_PROVISIONING_MAP_RESOURCES
UCHAR Token[STORAGE_OFFLOAD_TOKEN_ID_LENGTH]
Definition: ntddstor.h:987
BOOLEAN MediaHotplug
Definition: imports.h:247
STORAGE_DEVICE_ID_DESCRIPTOR
Definition: ntddstor.h:731
struct _DEVICE_DATA_SET_LBP_STATE_PARAMETERS DEVICE_DATA_SET_LBP_STATE_PARAMETERS
union _DEVICE_MEDIA_INFO::@3114 DeviceSpecific
* PSTORAGE_DEVICE_DESCRIPTOR
Definition: ntddstor.h:565
struct _DEVICE_DATA_SET_LB_PROVISIONING_STATE_V2 * PDEVICE_DSM_ALLOCATION_OUTPUT2
struct _STORAGE_OFFLOAD_TOKEN::@3120::@3121 StorageOffloadZeroDataToken
ULONGLONG LengthInBytes
Definition: ntddstor.h:757
struct _DEVICE_DATA_SET_LBP_STATE_PARAMETERS DEVICE_DSM_ALLOCATION_PARAMETERS
struct _DEVICE_DSM_OFFLOAD_WRITE_PARAMETERS * PDEVICE_DSM_OFFLOAD_WRITE_PARAMETERS
enum _STORAGE_IDENTIFIER_CODE_SET STORAGE_IDENTIFIER_CODE_SET
BOOLEAN DeviceAttentionSupported
Definition: ntddstor.h:655
enum _STORAGE_ASSOCIATION_TYPE STORAGE_ASSOCIATION_TYPE
* PSTORAGE_READ_CAPACITY
Definition: ntddstor.h:850
enum _STORAGE_MEDIA_TYPE STORAGE_MEDIA_TYPE
enum _STORAGE_QUERY_TYPE * PSTORAGE_QUERY_TYPE
UCHAR Identifier[1]
Definition: ntddstor.h:723
enum _STORAGE_ID_NAA_FORMAT * PSTORAGE_ID_NAA_FORMAT
union _DEVICE_MEDIA_INFO::@3114::@3117::@3118 BusSpecificData
struct _STORAGE_IDENTIFIER STORAGE_IDENTIFIER
#define __MINGW_EXTENSION
Definition: _mingw.h:166
STORAGE_READ_CAPACITY
Definition: ntddstor.h:850
_STORAGE_PROPERTY_ID
Definition: ntddstor.h:500
struct _DEVICE_DATA_SET_LB_PROVISIONING_STATE_V2 DEVICE_DATA_SET_LB_PROVISIONING_STATE_V2
unsigned char BOOLEAN
struct _STORAGE_HOTPLUG_INFO * PSTORAGE_HOTPLUG_INFO
struct _STORAGE_OFFLOAD_WRITE_OUTPUT * PSTORAGE_OFFLOAD_WRITE_OUTPUT
struct _STORAGE_PREDICT_FAILURE * PSTORAGE_PREDICT_FAILURE
enum _STORAGE_ID_NAA_FORMAT STORAGE_ID_NAA_FORMAT
_Reserved_ PVOID Reserved
Definition: winddi.h:3974
STORAGE_IDENTIFIER_CODE_SET CodeSet
Definition: ntddstor.h:718
UCHAR Reserved2[STORAGE_OFFLOAD_TOKEN_ID_LENGTH]
Definition: ntddstor.h:985
ULONG CurrentBlockSize
Definition: ntddstor.h:470
struct _STORAGE_OFFLOAD_READ_OUTPUT STORAGE_OFFLOAD_READ_OUTPUT
struct _DEVICE_DATA_SET_LBP_STATE_PARAMETERS * PDEVICE_DATA_SET_LBP_STATE_PARAMETERS
STORAGE_ADAPTER_DESCRIPTOR
Definition: ntddstor.h:588
enum _WRITE_CACHE_CHANGE WRITE_CACHE_CHANGE
STORAGE_PORT_CODE_SET Portdriver
Definition: ntddstor.h:620
_STORAGE_PORT_CODE_SET
Definition: ntddstor.h:606
struct _STORAGE_OFFLOAD_TOKEN * PSTORAGE_OFFLOAD_TOKEN
enum _STORAGE_IDENTIFIER_CODE_SET * PSTORAGE_IDENTIFIER_CODE_SET
struct _STORAGE_LB_PROVISIONING_MAP_RESOURCES * PSTORAGE_LB_PROVISIONING_MAP_RESOURCES
struct _DEVICE_DSM_OFFLOAD_READ_PARAMETERS DEVICE_DSM_OFFLOAD_READ_PARAMETERS
_STORAGE_MEDIA_TYPE
Definition: cdrw_usr.h:192
struct _GET_MEDIA_TYPES GET_MEDIA_TYPES
STORAGE_BUS_TYPE BusType
Definition: ntddstor.h:471
enum _STORAGE_QUERY_TYPE STORAGE_QUERY_TYPE
struct _DEVICE_MEDIA_INFO::@3114::@3117::@3118::@3119 ScsiInformation
int64_t LONGLONG
Definition: typedefs.h:68
struct _DEVICE_DSM_NOTIFICATION_PARAMETERS DEVICE_DSM_NOTIFICATION_PARAMETERS
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
Definition: guiddef.h:68
_WRITE_CACHE_CHANGE
Definition: ntddstor.h:865
struct _DEVICE_DSM_OFFLOAD_WRITE_PARAMETERS DEVICE_DSM_OFFLOAD_WRITE_PARAMETERS
BOOLEAN WriteCacheEnableOverride
Definition: imports.h:249
STORAGE_DEVICE_DESCRIPTOR
Definition: ntddstor.h:565
ULONG TracksPerCylinder
Definition: ntddstor.h:452
enum _WRITE_CACHE_TYPE WRITE_CACHE_TYPE
struct _DEVICE_POWER_DESCRIPTOR * PDEVICE_POWER_DESCRIPTOR
uint64_t ULONGLONG
Definition: typedefs.h:67
ULONG DEVICE_DATA_MANAGEMENT_SET_ACTION
Definition: ntddstor.h:751
struct _STORAGE_BREAK_RESERVATION_REQUEST * PSTORAGE_BREAK_RESERVATION_REQUEST
LARGE_INTEGER RecoveredWrites
Definition: ntddstor.h:344
struct _DEVICE_DATA_SET_LB_PROVISIONING_STATE * PDEVICE_DSM_ALLOCATION_OUTPUT
enum _STORAGE_PROPERTY_ID * PSTORAGE_PROPERTY_ID
struct _STORAGE_ALLOCATE_BC_STREAM_OUTPUT * PSTORAGE_ALLOCATE_BC_STREAM_OUTPUT
STORAGE_WRITE_CACHE_PROPERTY
Definition: ntddstor.h:887
struct _DEVICE_LB_PROVISIONING_DESCRIPTOR * PDEVICE_LB_PROVISIONING_DESCRIPTOR
struct _PREVENT_MEDIA_REMOVAL PREVENT_MEDIA_REMOVAL
struct _DEVICE_MEDIA_INFO * PDEVICE_MEDIA_INFO
UCHAR TokenIdLength[2]
Definition: ntddstor.h:982
_STORAGE_BUS_TYPE
Definition: ntddstor.h:426
enum _STORAGE_IDENTIFIER_TYPE STORAGE_IDENTIFIER_TYPE
struct _DEVICE_DATA_SET_LB_PROVISIONING_STATE_V2 DEVICE_DSM_ALLOCATION_OUTPUT2
struct _STORAGE_PROPERTY_QUERY * PSTORAGE_PROPERTY_QUERY
struct _STORAGE_ALLOCATE_BC_STREAM_INPUT STORAGE_ALLOCATE_BC_STREAM_INPUT
struct _DEVICE_SEEK_PENALTY_DESCRIPTOR DEVICE_SEEK_PENALTY_DESCRIPTOR
struct _STORAGE_BREAK_RESERVATION_REQUEST STORAGE_BREAK_RESERVATION_REQUEST
struct _PREVENT_MEDIA_REMOVAL * PPREVENT_MEDIA_REMOVAL
unsigned char UCHAR
Definition: xmlstorage.h:181
BOOLEAN PreventMediaRemoval
Definition: ntddstor.h:332
BOOLEAN NoVerifyDuringIdlePower
Definition: ntddstor.h:660
enum _WRITE_THROUGH WRITE_THROUGH
struct _DEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT * PDEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT
ULONG NumberMediaSides
Definition: ntddstor.h:455
STORAGE_DESCRIPTOR_HEADER
Definition: ntddstor.h:549
struct _STORAGE_DEVICE_NUMBER STORAGE_DEVICE_NUMBER
LARGE_INTEGER UnrecoveredWrites
Definition: ntddstor.h:345
struct _DEVICE_WRITE_AGGREGATION_DESCRIPTOR DEVICE_WRITE_AGGREGATION_DESCRIPTOR
ULONG DeviceType
Definition: ntddstor.h:483
struct _TAPE_STATISTICS TAPE_STATISTICS
enum _STORAGE_ASSOCIATION_TYPE * PSTORAGE_ASSOCIATION_TYPE
ULONG SerialNumber
Definition: rxce.c:117
struct _TAPE_GET_STATISTICS TAPE_GET_STATISTICS
struct _STORAGE_BUS_RESET_REQUEST STORAGE_BUS_RESET_REQUEST
IN PVOID IN PVOID IN USHORT IN USHORT Size
Definition: pci.h:361
ULONG MediaInfoCount
Definition: ntddstor.h:484
struct _DEVICE_DSM_NOTIFICATION_PARAMETERS * PDEVICE_DSM_NOTIFICATION_PARAMETERS
struct _DEVICE_DSM_OFFLOAD_READ_PARAMETERS * PDEVICE_DSM_OFFLOAD_READ_PARAMETERS
struct _STORAGE_IDLE_POWER * PSTORAGE_IDLE_POWER
_WRITE_CACHE_TYPE
Definition: ntddstor.h:852
_WRITE_THROUGH
Definition: ntddstor.h:871
UCHAR VendorSpecific[512]
Definition: ntddstor.h:490
struct _STORAGE_PROPERTY_QUERY STORAGE_PROPERTY_QUERY
enum _STORAGE_PORT_CODE_SET * PSTORAGE_PORT_CODE_SET
STORAGE_QUERY_TYPE QueryType
Definition: ntddstor.h:542
enum _STORAGE_IDENTIFIER_TYPE * PSTORAGE_IDENTIFIER_TYPE
enum _STORAGE_MEDIA_TYPE * PSTORAGE_MEDIA_TYPE
struct _STORAGE_PREDICT_FAILURE STORAGE_PREDICT_FAILURE
unsigned short USHORT
Definition: pedump.c:61
Definition: ntddstor.h:365
ULONG BytesPerSector
Definition: ntddstor.h:454
struct _STORAGE_MINIPORT_DESCRIPTOR STORAGE_MINIPORT_DESCRIPTOR
#define DEVICE_TYPE
Definition: guid.c:10
struct _CLASS_MEDIA_CHANGE_CONTEXT CLASS_MEDIA_CHANGE_CONTEXT
LARGE_INTEGER Cylinders
Definition: ntddstor.h:450
STORAGE_OFFLOAD_TOKEN Token
Definition: ntddstor.h:1037
struct _DEVICE_MEDIA_INFO::@3114::@3117 TapeInfo
Definition: bcd.h:201
ULONG MediaCharacteristics
Definition: ntddstor.h:456
STORAGE_PROPERTY_ID PropertyId
Definition: ntddstor.h:541
LONGLONG StartingOffset
Definition: ntddstor.h:756
UCHAR AdditionalParameters[1]
Definition: ntddstor.h:543
struct _DEVICE_DATA_SET_LB_PROVISIONING_STATE_V2 * PDEVICE_DATA_SET_LB_PROVISIONING_STATE_V2
struct _DEVICE_MEDIA_INFO DEVICE_MEDIA_INFO
#define STORAGE_OFFLOAD_TOKEN_ID_LENGTH
Definition: ntddstor.h:976
struct _GET_MEDIA_TYPES * PGET_MEDIA_TYPES
* PSTORAGE_MEDIUM_PRODUCT_TYPE_DESCRIPTOR
Definition: ntddstor.h:604
struct _STORAGE_OFFLOAD_WRITE_OUTPUT STORAGE_OFFLOAD_WRITE_OUTPUT
struct _DEVICE_POWER_DESCRIPTOR DEVICE_POWER_DESCRIPTOR
unsigned int ULONG
Definition: retypes.h:1
STORAGE_MEDIUM_PRODUCT_TYPE_DESCRIPTOR
Definition: ntddstor.h:604
Definition: ntddstor.h:373
ULONG SlabAllocationBitMap[ANYSIZE_ARRAY]
Definition: ntddstor.h:923
STORAGE_ASSOCIATION_TYPE Association
Definition: ntddstor.h:722
struct _DEVICE_MANAGE_DATA_SET_ATTRIBUTES * PDEVICE_MANAGE_DATA_SET_ATTRIBUTES
struct _DEVICE_SEEK_PENALTY_DESCRIPTOR * PDEVICE_SEEK_PENALTY_DESCRIPTOR
struct _CLASS_MEDIA_CHANGE_CONTEXT * PCLASS_MEDIA_CHANGE_CONTEXT
Definition: ntddstor.h:364
struct _TAPE_STATISTICS * PTAPE_STATISTICS
struct _STORAGE_GET_BC_PROPERTIES_OUTPUT * PSTORAGE_GET_BC_PROPERTIES_OUTPUT
BOOLEAN MediaRemovable
Definition: imports.h:246
struct _STORAGE_DEVICE_NUMBER * PSTORAGE_DEVICE_NUMBER
* PSTORAGE_DEVICE_ID_DESCRIPTOR
Definition: ntddstor.h:731
struct _DEVICE_WRITE_AGGREGATION_DESCRIPTOR * PDEVICE_WRITE_AGGREGATION_DESCRIPTOR
STORAGE_DEVICE_IO_CAPABILITY_DESCRIPTOR
Definition: ntddstor.h:684
enum _STORAGE_BUS_TYPE * PSTORAGE_BUS_TYPE
enum _STORAGE_PORT_CODE_SET STORAGE_PORT_CODE_SET
BOOLEAN IdlePowerManagementEnabled
Definition: ntddstor.h:657
Definition: ntddstor.h:360
struct _STORAGE_EVENT_NOTIFICATION STORAGE_EVENT_NOTIFICATION
struct _STORAGE_HOTPLUG_INFO STORAGE_HOTPLUG_INFO
_STORAGE_IDENTIFIER_TYPE
Definition: ntddstor.h:693
DEVICE_MEDIA_INFO MediaInfo[1]
Definition: ntddstor.h:485
_STORAGE_QUERY_TYPE
Definition: ntddstor.h:493
enum _WRITE_CACHE_ENABLE WRITE_CACHE_ENABLE
struct _STORAGE_OFFLOAD_TOKEN STORAGE_OFFLOAD_TOKEN