30#if defined(DEFINE_GUID)
33 0x53f56307L, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);
36 0x53f56308L, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);
39 0x53f5630aL, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);
42 0x53f5630bL, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);
45 0x53f5630cL, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);
48 0x53f5630dL, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);
51 0x53f56310L, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);
54 0x53f56311L, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);
57 0x53f56312L, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);
60 0x2accfe60L, 0xc130, 0x11d2, 0xb0, 0x82, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);
63 0x7f108a28L, 0x9833, 0x4b3b, 0xb7, 0x80, 0x2c, 0x6b, 0x5f, 0xa5, 0xc0, 0x62);
65#define WDI_STORAGE_PREDICT_FAILURE_DPS_GUID \
66 {0xe9f2d03aL, 0x747c, 0x41c2, {0xbb, 0x9a, 0x02, 0xc6, 0x2b, 0x6d, 0x5f, 0xcb}};
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
83#if defined(DEFINE_DEVPROPKEY)
84DEFINE_DEVPROPKEY(DEVPKEY_Storage_Portable, 0x4d1ebee8, 0x803, 0x4774, 0x98, 0x42, 0xb7, 0x7d, 0xb5, 0x2, 0x65, 0xe9, 2);
85DEFINE_DEVPROPKEY(DEVPKEY_Storage_Removable_Media, 0x4d1ebee8, 0x803, 0x4774, 0x98, 0x42, 0xb7, 0x7d, 0xb5, 0x2, 0x65, 0xe9, 3);
86DEFINE_DEVPROPKEY(DEVPKEY_Storage_System_Critical, 0x4d1ebee8, 0x803, 0x4774, 0x98, 0x42, 0xb7, 0x7d, 0xb5, 0x2, 0x65, 0xe9, 4);
87DEFINE_DEVPROPKEY(DEVPKEY_Storage_Disk_Number, 0x4d1ebee8, 0x803, 0x4774, 0x98, 0x42, 0xb7, 0x7d, 0xb5, 0x2, 0x65, 0xe9, 5);
88DEFINE_DEVPROPKEY(DEVPKEY_Storage_Partition_Number, 0x4d1ebee8, 0x803, 0x4774, 0x98, 0x42, 0xb7, 0x7d, 0xb5, 0x2, 0x65, 0xe9, 6);
89DEFINE_DEVPROPKEY(DEVPKEY_Storage_Mbr_Type, 0x4d1ebee8, 0x803, 0x4774, 0x98, 0x42, 0xb7, 0x7d, 0xb5, 0x2, 0x65, 0xe9, 7);
90DEFINE_DEVPROPKEY(DEVPKEY_Storage_Gpt_Type, 0x4d1ebee8, 0x803, 0x4774, 0x98, 0x42, 0xb7, 0x7d, 0xb5, 0x2, 0x65, 0xe9, 8);
91DEFINE_DEVPROPKEY(DEVPKEY_Storage_Gpt_Name, 0x4d1ebee8, 0x803, 0x4774, 0x98, 0x42, 0xb7, 0x7d, 0xb5, 0x2, 0x65, 0xe9, 9);
96#define IOCTL_STORAGE_BASE FILE_DEVICE_MASS_STORAGE
98#define IOCTL_STORAGE_CHECK_VERIFY \
99 CTL_CODE(IOCTL_STORAGE_BASE, 0x0200, METHOD_BUFFERED, FILE_READ_ACCESS)
101#define IOCTL_STORAGE_CHECK_VERIFY2 \
102 CTL_CODE(IOCTL_STORAGE_BASE, 0x0200, METHOD_BUFFERED, FILE_ANY_ACCESS)
104#define IOCTL_STORAGE_MEDIA_REMOVAL \
105 CTL_CODE(IOCTL_STORAGE_BASE, 0x0201, METHOD_BUFFERED, FILE_READ_ACCESS)
107#define IOCTL_STORAGE_EJECT_MEDIA \
108 CTL_CODE(IOCTL_STORAGE_BASE, 0x0202, METHOD_BUFFERED, FILE_READ_ACCESS)
110#define IOCTL_STORAGE_LOAD_MEDIA \
111 CTL_CODE(IOCTL_STORAGE_BASE, 0x0203, METHOD_BUFFERED, FILE_READ_ACCESS)
113#define IOCTL_STORAGE_LOAD_MEDIA2 \
114 CTL_CODE(IOCTL_STORAGE_BASE, 0x0203, METHOD_BUFFERED, FILE_ANY_ACCESS)
116#define IOCTL_STORAGE_RESERVE \
117 CTL_CODE(IOCTL_STORAGE_BASE, 0x0204, METHOD_BUFFERED, FILE_READ_ACCESS)
119#define IOCTL_STORAGE_RELEASE \
120 CTL_CODE(IOCTL_STORAGE_BASE, 0x0205, METHOD_BUFFERED, FILE_READ_ACCESS)
122#define IOCTL_STORAGE_FIND_NEW_DEVICES \
123 CTL_CODE(IOCTL_STORAGE_BASE, 0x0206, METHOD_BUFFERED, FILE_READ_ACCESS)
125#define IOCTL_STORAGE_EJECTION_CONTROL \
126 CTL_CODE(IOCTL_STORAGE_BASE, 0x0250, METHOD_BUFFERED, FILE_ANY_ACCESS)
128#define IOCTL_STORAGE_MCN_CONTROL \
129 CTL_CODE(IOCTL_STORAGE_BASE, 0x0251, METHOD_BUFFERED, FILE_ANY_ACCESS)
131#define IOCTL_STORAGE_GET_MEDIA_TYPES \
132 CTL_CODE(IOCTL_STORAGE_BASE, 0x0300, METHOD_BUFFERED, FILE_ANY_ACCESS)
134#define IOCTL_STORAGE_GET_MEDIA_TYPES_EX \
135 CTL_CODE(IOCTL_STORAGE_BASE, 0x0301, METHOD_BUFFERED, FILE_ANY_ACCESS)
137#define IOCTL_STORAGE_RESET_BUS \
138 CTL_CODE(IOCTL_STORAGE_BASE, 0x0400, METHOD_BUFFERED, FILE_READ_ACCESS)
140#define IOCTL_STORAGE_RESET_DEVICE \
141 CTL_CODE(IOCTL_STORAGE_BASE, 0x0401, METHOD_BUFFERED, FILE_READ_ACCESS)
143#define IOCTL_STORAGE_GET_DEVICE_NUMBER \
144 CTL_CODE(IOCTL_STORAGE_BASE, 0x0420, METHOD_BUFFERED, FILE_ANY_ACCESS)
146#define IOCTL_STORAGE_PREDICT_FAILURE \
147 CTL_CODE(IOCTL_STORAGE_BASE, 0x0440, METHOD_BUFFERED, FILE_ANY_ACCESS)
151#define IOCTL_STORAGE_GET_MEDIA_SERIAL_NUMBER \
152 CTL_CODE(IOCTL_STORAGE_BASE, 0x0304, METHOD_BUFFERED, FILE_ANY_ACCESS)
154#define IOCTL_STORAGE_GET_HOTPLUG_INFO \
155 CTL_CODE(IOCTL_STORAGE_BASE, 0x0305, METHOD_BUFFERED, FILE_ANY_ACCESS)
157#define IOCTL_STORAGE_SET_HOTPLUG_INFO \
158 CTL_CODE(IOCTL_STORAGE_BASE, 0x0306, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
160#define OBSOLETE_IOCTL_STORAGE_RESET_BUS \
161 CTL_CODE(IOCTL_STORAGE_BASE, 0x0400, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
163#define OBSOLETE_IOCTL_STORAGE_RESET_DEVICE \
164 CTL_CODE(IOCTL_STORAGE_BASE, 0x0401, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
166#define IOCTL_STORAGE_BREAK_RESERVATION \
167 CTL_CODE(IOCTL_STORAGE_BASE, 0x0405, METHOD_BUFFERED, FILE_READ_ACCESS)
169#define IOCTL_STORAGE_PERSISTENT_RESERVE_IN \
170 CTL_CODE(IOCTL_STORAGE_BASE, 0x0406, METHOD_BUFFERED, FILE_READ_ACCESS)
172#define IOCTL_STORAGE_PERSISTENT_RESERVE_OUT \
173 CTL_CODE(IOCTL_STORAGE_BASE, 0x0407, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
175#define IOCTL_STORAGE_READ_CAPACITY \
176 CTL_CODE(IOCTL_STORAGE_BASE, 0x0450, METHOD_BUFFERED, FILE_READ_ACCESS)
178#define IOCTL_STORAGE_QUERY_PROPERTY \
179 CTL_CODE(IOCTL_STORAGE_BASE, 0x0500, METHOD_BUFFERED, FILE_ANY_ACCESS)
181#define IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES \
182 CTL_CODE(IOCTL_STORAGE_BASE, 0x0501, METHOD_BUFFERED, FILE_WRITE_ACCESS)
184#define IOCTL_STORAGE_GET_LB_PROVISIONING_MAP_RESOURCES \
185 CTL_CODE(IOCTL_STORAGE_BASE, 0x0502, METHOD_BUFFERED, FILE_READ_ACCESS)
187#define IOCTL_STORAGE_GET_BC_PROPERTIES \
188 CTL_CODE(IOCTL_STORAGE_BASE, 0x0600, METHOD_BUFFERED, FILE_READ_ACCESS)
190#define IOCTL_STORAGE_ALLOCATE_BC_STREAM \
191 CTL_CODE(IOCTL_STORAGE_BASE, 0x0601, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
193#define IOCTL_STORAGE_FREE_BC_STREAM \
194 CTL_CODE(IOCTL_STORAGE_BASE, 0x0602, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
196#define IOCTL_STORAGE_CHECK_PRIORITY_HINT_SUPPORT \
197 CTL_CODE(IOCTL_STORAGE_BASE, 0x0620, METHOD_BUFFERED, FILE_ANY_ACCESS)
199#define IOCTL_STORAGE_START_DATA_INTEGRITY_CHECK \
200 CTL_CODE(IOCTL_STORAGE_BASE, 0x0621, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
202#define IOCTL_STORAGE_STOP_DATA_INTEGRITY_CHECK \
203 CTL_CODE(IOCTL_STORAGE_BASE, 0x0622, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
205#define IOCTL_STORAGE_FIRMWARE_GET_INFO \
206 CTL_CODE(IOCTL_STORAGE_BASE, 0x0700, METHOD_BUFFERED, FILE_ANY_ACCESS)
208#define IOCTL_STORAGE_FIRMWARE_DOWNLOAD \
209 CTL_CODE(IOCTL_STORAGE_BASE, 0x0701, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
211#define IOCTL_STORAGE_FIRMWARE_ACTIVATE \
212 CTL_CODE(IOCTL_STORAGE_BASE, 0x0702, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
214#define IOCTL_STORAGE_ENABLE_IDLE_POWER \
215 CTL_CODE(IOCTL_STORAGE_BASE, 0x0720, METHOD_BUFFERED, FILE_ANY_ACCESS)
217#define IOCTL_STORAGE_GET_IDLE_POWERUP_REASON \
218 CTL_CODE(IOCTL_STORAGE_BASE, 0x0721, METHOD_BUFFERED, FILE_ANY_ACCESS)
220#define IOCTL_STORAGE_POWER_ACTIVE \
221 CTL_CODE(IOCTL_STORAGE_BASE, 0x0722, METHOD_BUFFERED, FILE_ANY_ACCESS)
223#define IOCTL_STORAGE_POWER_IDLE \
224 CTL_CODE(IOCTL_STORAGE_BASE, 0x0723, METHOD_BUFFERED, FILE_ANY_ACCESS)
226#define IOCTL_STORAGE_EVENT_NOTIFICATION \
227 CTL_CODE(IOCTL_STORAGE_BASE, 0x0724, METHOD_BUFFERED, FILE_ANY_ACCESS)
229#define IOCTL_STORAGE_DEVICE_POWER_CAP \
230 CTL_CODE(IOCTL_STORAGE_BASE, 0x0725, METHOD_BUFFERED, FILE_ANY_ACCESS)
232#define IOCTL_STORAGE_RPMB_COMMAND \
233 CTL_CODE(IOCTL_STORAGE_BASE, 0x0726, METHOD_BUFFERED, FILE_ANY_ACCESS)
235#define IOCTL_STORAGE_ATTRIBUTE_MANAGEMENT \
236 CTL_CODE(IOCTL_STORAGE_BASE, 0x0727, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
238#define IOCTL_STORAGE_DIAGNOSTIC \
239 CTL_CODE(IOCTL_STORAGE_BASE, 0x0728, METHOD_BUFFERED, FILE_ANY_ACCESS)
241#define IOCTL_STORAGE_GET_PHYSICAL_ELEMENT_STATUS \
242 CTL_CODE(IOCTL_STORAGE_BASE, 0x0729, METHOD_BUFFERED, FILE_ANY_ACCESS)
244#define IOCTL_STORAGE_REMOVE_ELEMENT_AND_TRUNCATE \
245 CTL_CODE(IOCTL_STORAGE_BASE, 0x0730, METHOD_BUFFERED, FILE_ANY_ACCESS)
247#define IOCTL_STORAGE_GET_DEVICE_INTERNAL_LOG \
248 CTL_CODE(IOCTL_STORAGE_BASE, 0x0731, METHOD_BUFFERED, FILE_ANY_ACCESS)
250#define RECOVERED_WRITES_VALID 0x00000001
251#define UNRECOVERED_WRITES_VALID 0x00000002
252#define RECOVERED_READS_VALID 0x00000004
253#define UNRECOVERED_READS_VALID 0x00000008
254#define WRITE_COMPRESSION_INFO_VALID 0x00000010
255#define READ_COMPRESSION_INFO_VALID 0x00000020
257#define TAPE_RETURN_STATISTICS 0L
258#define TAPE_RETURN_ENV_INFO 1L
259#define TAPE_RESET_STATISTICS 2L
262#define MEDIA_ERASEABLE 0x00000001
263#define MEDIA_WRITE_ONCE 0x00000002
264#define MEDIA_READ_ONLY 0x00000004
265#define MEDIA_READ_WRITE 0x00000008
266#define MEDIA_WRITE_PROTECTED 0x00000100
267#define MEDIA_CURRENTLY_MOUNTED 0x80000000
269#define StorageIdTypeNAA StorageIdTypeFCPHName
271#define DeviceDsmActionFlag_NonDestructive 0x80000000
273#define IsDsmActionNonDestructive(_Action) ((BOOLEAN)((_Action & DeviceDsmActionFlag_NonDestructive) != 0))
275#define DeviceDsmAction_None 0x0u
276#define DeviceDsmAction_Trim 0x1u
277#define DeviceDsmAction_Notification (0x00000002u | DeviceDsmActionFlag_NonDestructive)
278#define DeviceDsmAction_OffloadRead (0x00000003u | DeviceDsmActionFlag_NonDestructive)
279#define DeviceDsmAction_OffloadWrite (0x00000004u)
280#define DeviceDsmAction_Allocation (0x00000005u | DeviceDsmActionFlag_NonDestructive)
281#define DeviceDsmAction_Repair (0x00000006u | DeviceDsmActionFlag_NonDestructive)
282#define DeviceDsmAction_Scrub (0x00000007u | DeviceDsmActionFlag_NonDestructive)
283#define DeviceDsmAction_DrtQuery (0x00000008u | DeviceDsmActionFlag_NonDestructive)
284#define DeviceDsmAction_DrtClear (0x00000009u | DeviceDsmActionFlag_NonDestructive)
285#define DeviceDsmAction_DrtDisable (0x0000000Au | DeviceDsmActionFlag_NonDestructive)
286#define DeviceDsmAction_TieringQuery (0x0000000Bu | DeviceDsmActionFlag_NonDestructive)
287#define DeviceDsmAction_Map (0x0000000Cu | DeviceDsmActionFlag_NonDestructive)
288#define DeviceDsmAction_RegenerateParity (0x0000000Du | DeviceDsmActionFlag_NonDestructive)
289#define DeviceDsmAction_NvCache_Change_Priority (0x0000000Eu | DeviceDsmActionFlag_NonDestructive)
290#define DeviceDsmAction_NvCache_Evict (0x0000000Fu | DeviceDsmActionFlag_NonDestructive)
291#define DeviceDsmAction_TopologyIdQuery (0x00000010u | DeviceDsmActionFlag_NonDestructive)
292#define DeviceDsmAction_GetPhysicalAddresses (0x00000011u | DeviceDsmActionFlag_NonDestructive)
293#define DeviceDsmAction_ScopeRegen (0x00000012u | DeviceDsmActionFlag_NonDestructive)
294#define DeviceDsmAction_ReportZones (0x00000013u | DeviceDsmActionFlag_NonDestructive)
295#define DeviceDsmAction_OpenZone (0x00000014u | DeviceDsmActionFlag_NonDestructive)
296#define DeviceDsmAction_FinishZone (0x00000015u | DeviceDsmActionFlag_NonDestructive)
297#define DeviceDsmAction_CloseZone (0x00000016u | DeviceDsmActionFlag_NonDestructive)
298#define DeviceDsmAction_ResetWritePointer (0x00000017u)
299#define DeviceDsmAction_GetRangeErrorInfo (0x00000018u | DeviceDsmActionFlag_NonDestructive)
300#define DeviceDsmAction_WriteZeroes (0x00000019u)
301#define DeviceDsmAction_LostQuery (0x0000001Au | DeviceDsmActionFlag_NonDestructive)
302#define DeviceDsmAction_GetFreeSpace (0x0000001Bu | DeviceDsmActionFlag_NonDestructive)
303#define DeviceDsmAction_ConversionQuery (0x0000001Cu | DeviceDsmActionFlag_NonDestructive)
304#define DeviceDsmAction_VdtSet (0x0000001Du)
306#define DEVICE_DSM_FLAG_ENTIRE_DATA_SET_RANGE 0x00000001
308#define DEVICE_DSM_NOTIFY_FLAG_BEGIN 0x00000001
309#define DEVICE_DSM_NOTIFY_FLAG_END 0x00000002
311#define IOCTL_STORAGE_BC_VERSION 1
313#define STORAGE_PRIORITY_HINT_SUPPORTED 0x0001
421#if (NTDDI_VERSION < NTDDI_WINXP)
566 UCHAR DeviceTypeModifier;
569 ULONG VendorIdOffset;
570 ULONG ProductIdOffset;
571 ULONG ProductRevisionOffset;
572 ULONG SerialNumberOffset;
574 ULONG RawPropertiesLength;
575 UCHAR RawDeviceProperties[1];
582 ULONG MaximumPhysicalPages;
588#if (NTDDI_VERSION < NTDDI_WINXP)
595#if (NTDDI_VERSION >= NTDDI_WIN8)
604 ULONG BytesPerCacheLine;
605 ULONG BytesOffsetForCacheAlignment;
606 ULONG BytesPerLogicalSector;
607 ULONG BytesPerPhysicalSector;
608 ULONG BytesOffsetForSectorAlignment;
614 ULONG MediumProductType;
634#if (NTDDI_VERSION >= NTDDI_WIN8)
637#if (NTDDI_VERSION >= NTDDI_WINBLUE)
655#if (NTDDI_VERSION >= NTDDI_WINBLUE)
661#define DEVICE_LB_PROVISIONING_DESCRIPTOR_V1_SIZE RTL_SIZEOF_THROUGH_FIELD(DEVICE_LB_PROVISIONING_DESCRIPTOR, UnmapGranularityAlignment)
694 ULONG AdapterMaxIoCount;
740 ULONG NumberOfIdentifiers;
741 UCHAR Identifiers[1];
764#define DEVICE_DSM_FLAG_TRIM_NOT_FS_ALLOCATED 0x80000000
819#pragma warning(disable:4200)
896 BOOLEAN UserDefinedPowerProtection;
938#define DEVICE_DSM_ALLOCATION_OUTPUT_V1 (sizeof(DEVICE_DSM_ALLOCATION_OUTPUT))
939#define DEVICE_DATA_SET_LB_PROVISIONING_STATE_VERSION_V1 DEVICE_DSM_ALLOCATION_OUTPUT_V1
952#define DEVICE_DSM_ALLOCATION_OUTPUT_V2 (sizeof(DEVICE_DSM_ALLOCATION_OUTPUT2))
953#define DEVICE_DATA_SET_LB_PROVISIONING_STATE_VERSION_V2 DEVICE_DSM_ALLOCATION_OUTPUT_V2
955#define DeviceDsmDefinition_Allocation {DeviceDsmAction_Allocation, \
957 __alignof(DEVICE_DSM_ALLOCATION_PARAMETERS), \
958 sizeof(DEVICE_DSM_ALLOCATION_PARAMETERS), \
960 __alignof(DEVICE_DSM_ALLOCATION_OUTPUT2), \
961 sizeof(DEVICE_DSM_ALLOCATION_OUTPUT2)}
963#define DEVICE_DSM_FLAG_ALLOCATION_CONSOLIDATEABLE_ONLY 0x40000000
979#define STORAGE_EVENT_NOTIFICATION_VERSION_V1 1
981#define STORAGE_EVENT_MEDIA_STATUS 0x0000000000000001
982#define STORAGE_EVENT_DEVICE_STATUS 0x0000000000000002
983#define STORAGE_EVENT_DEVICE_OPERATION 0x0000000000000004
984#define STORAGE_EVENT_ALL (STORAGE_EVENT_MEDIA_STATUS | STORAGE_EVENT_DEVICE_STATUS | STORAGE_EVENT_DEVICE_OPERATION)
986#define STORAGE_OFFLOAD_MAX_TOKEN_LENGTH 512
987#define STORAGE_OFFLOAD_TOKEN_ID_LENGTH 0x1F8
988#define STORAGE_OFFLOAD_TOKEN_TYPE_ZERO_DATA 0xFFFF0001
1002#define MAKE_ZERO_TOKEN(T) ( \
1003 ((PSTORAGE_OFFLOAD_TOKEN)T)->TokenType[0] = 0xFF, \
1004 ((PSTORAGE_OFFLOAD_TOKEN)T)->TokenType[1] = 0xFF, \
1005 ((PSTORAGE_OFFLOAD_TOKEN)T)->TokenType[2] = 0x00, \
1006 ((PSTORAGE_OFFLOAD_TOKEN)T)->TokenType[3] = 0x01, \
1007 ((PSTORAGE_OFFLOAD_TOKEN)T)->TokenIdLength[0] = 0x01, \
1008 ((PSTORAGE_OFFLOAD_TOKEN)T)->TokenIdLength[1] = 0xF8 \
1011#define IS_ZERO_TOKEN(T) ( \
1012 (((PSTORAGE_OFFLOAD_TOKEN)T)->TokenType[0] == 0xFF && \
1013 ((PSTORAGE_OFFLOAD_TOKEN)T)->TokenType[1] == 0xFF && \
1014 ((PSTORAGE_OFFLOAD_TOKEN)T)->TokenType[2] == 0x00 && \
1015 ((PSTORAGE_OFFLOAD_TOKEN)T)->TokenType[3] == 0x01 && \
1016 ((PSTORAGE_OFFLOAD_TOKEN)T)->TokenIdLength[0] == 0x01 && \
1017 ((PSTORAGE_OFFLOAD_TOKEN)T)->TokenIdLength[1] == 0xF8) \
1026#define STORAGE_OFFLOAD_READ_RANGE_TRUNCATED 0x00000001
1036#define DeviceDsmDefinition_OffloadRead {DeviceDsmAction_OffloadRead, \
1038 __alignof(DEVICE_DSM_OFFLOAD_READ_PARAMETERS), \
1039 sizeof(DEVICE_DSM_OFFLOAD_READ_PARAMETERS), \
1041 __alignof(STORAGE_OFFLOAD_READ_OUTPUT), \
1042 sizeof(STORAGE_OFFLOAD_READ_OUTPUT)}
1051#define STORAGE_OFFLOAD_WRITE_RANGE_TRUNCATED 0x0001
1052#define STORAGE_OFFLOAD_TOKEN_INVALID 0x0002
1060#define DeviceDsmDefinition_OffloadWrite {DeviceDsmAction_OffloadWrite, \
1062 __alignof(DEVICE_DSM_OFFLOAD_WRITE_PARAMETERS), \
1063 sizeof(DEVICE_DSM_OFFLOAD_WRITE_PARAMETERS), \
1065 __alignof(STORAGE_OFFLOAD_WRITE_OUTPUT), \
1066 sizeof(STORAGE_OFFLOAD_WRITE_OUTPUT)}
1069#define READ_COPY_NUMBER_KEY 0x52434e00
1070#define READ_COPY_NUMBER_BYPASS_CACHE_FLAG 0x00000100
1072#define IsKeyReadCopyNumber(_k) (((_k) & 0xFFFFFE00) == READ_COPY_NUMBER_KEY)
1074#define IsKeyReadCopyNumberBypassCache(_k) ((_k) & READ_COPY_NUMBER_BYPASS_CACHE_FLAG)
1075#define SetReadCopyNumberBypassCacheToKey(_k) ((_k) |= READ_COPY_NUMBER_BYPASS_CACHE_FLAG)
1077#define ReadCopyNumberToKey(_c) (READ_COPY_NUMBER_KEY | (UCHAR)(_c))
1078#define ReadCopyNumberFromKey(_k) (UCHAR)((_k) & 0x000000FF)
1105#define STORAGE_IDLE_POWERUP_REASON_VERSION_V1 1
#define __MINGW_EXTENSION
enum _STORAGE_MEDIA_TYPE STORAGE_MEDIA_TYPE
#define DEFINE_DEVPROPKEY(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8, pid)
#define _Struct_size_bytes_(s)
struct _STORAGE_PROPERTY_QUERY STORAGE_PROPERTY_QUERY
struct _STORAGE_ALLOCATE_BC_STREAM_INPUT STORAGE_ALLOCATE_BC_STREAM_INPUT
struct _STORAGE_IDLE_POWER STORAGE_IDLE_POWER
enum _STORAGE_PORT_CODE_SET * PSTORAGE_PORT_CODE_SET
enum _STORAGE_POWERUP_REASON_TYPE STORAGE_POWERUP_REASON_TYPE
struct _DEVICE_DATA_SET_LB_PROVISIONING_STATE DEVICE_DATA_SET_LB_PROVISIONING_STATE
@ WriteThroughNotSupported
struct _STORAGE_OFFLOAD_TOKEN STORAGE_OFFLOAD_TOKEN
enum _STORAGE_IDENTIFIER_TYPE * PSTORAGE_IDENTIFIER_TYPE
enum _STORAGE_IDENTIFIER_CODE_SET * PSTORAGE_IDENTIFIER_CODE_SET
struct _TAPE_STATISTICS * PTAPE_STATISTICS
struct _STORAGE_EVENT_NOTIFICATION STORAGE_EVENT_NOTIFICATION
* PSTORAGE_DESCRIPTOR_HEADER
enum _STORAGE_PROPERTY_ID STORAGE_PROPERTY_ID
struct _STORAGE_MEDIA_SERIAL_NUMBER_DATA * PSTORAGE_MEDIA_SERIAL_NUMBER_DATA
STORAGE_DESCRIPTOR_HEADER
struct _STORAGE_HOTPLUG_INFO STORAGE_HOTPLUG_INFO
enum _STORAGE_ID_NAA_FORMAT * PSTORAGE_ID_NAA_FORMAT
STORAGE_ADAPTER_DESCRIPTOR
enum _STORAGE_IDENTIFIER_CODE_SET STORAGE_IDENTIFIER_CODE_SET
enum _WRITE_CACHE_ENABLE WRITE_CACHE_ENABLE
struct _STORAGE_MINIPORT_DESCRIPTOR STORAGE_MINIPORT_DESCRIPTOR
ULONG DEVICE_DATA_MANAGEMENT_SET_ACTION
struct _STORAGE_ALLOCATE_BC_STREAM_OUTPUT STORAGE_ALLOCATE_BC_STREAM_OUTPUT
struct _STORAGE_ALLOCATE_BC_STREAM_OUTPUT * PSTORAGE_ALLOCATE_BC_STREAM_OUTPUT
struct _DEVICE_MANAGE_DATA_SET_ATTRIBUTES DEVICE_MANAGE_DATA_SET_ATTRIBUTES
enum _STORAGE_ID_NAA_FORMAT STORAGE_ID_NAA_FORMAT
enum _WRITE_CACHE_CHANGE WRITE_CACHE_CHANGE
enum _STORAGE_POWERUP_REASON_TYPE * PSTORAGE_POWERUP_REASON_TYPE
struct _DEVICE_POWER_DESCRIPTOR DEVICE_POWER_DESCRIPTOR
struct _DEVICE_DSM_OFFLOAD_WRITE_PARAMETERS DEVICE_DSM_OFFLOAD_WRITE_PARAMETERS
struct _DEVICE_DATA_SET_LB_PROVISIONING_STATE_V2 DEVICE_DSM_ALLOCATION_OUTPUT2
_STORAGE_IDENTIFIER_CODE_SET
@ StorageIdCodeSetReserved
struct _STORAGE_DEVICE_NUMBER STORAGE_DEVICE_NUMBER
struct _STORAGE_IDENTIFIER * PSTORAGE_IDENTIFIER
* PSTORAGE_WRITE_CACHE_PROPERTY
struct _DEVICE_DATA_SET_LB_PROVISIONING_STATE * PDEVICE_DATA_SET_LB_PROVISIONING_STATE
struct _STORAGE_PRIORITY_HINT_SUPPORT * PSTORAGE_PRIORITY_HINT_SUPPORT
enum _STORAGE_QUERY_TYPE * PSTORAGE_QUERY_TYPE
struct _DEVICE_SEEK_PENALTY_DESCRIPTOR DEVICE_SEEK_PENALTY_DESCRIPTOR
@ WriteCacheChangeUnknown
@ WriteCacheNotChangeable
struct _STORAGE_MINIPORT_DESCRIPTOR * PSTORAGE_MINIPORT_DESCRIPTOR
struct _PREVENT_MEDIA_REMOVAL * PPREVENT_MEDIA_REMOVAL
struct _DEVICE_SEEK_PENALTY_DESCRIPTOR * PDEVICE_SEEK_PENALTY_DESCRIPTOR
struct _STORAGE_EVENT_NOTIFICATION * PSTORAGE_EVENT_NOTIFICATION
@ WriteCacheTypeWriteBack
@ WriteCacheTypeWriteThrough
struct _STORAGE_BUS_RESET_REQUEST * PSTORAGE_BUS_RESET_REQUEST
_STORAGE_POWERUP_REASON_TYPE
@ StoragePowerupDeviceAttention
struct _DEVICE_WRITE_AGGREGATION_DESCRIPTOR * PDEVICE_WRITE_AGGREGATION_DESCRIPTOR
enum _STORAGE_PORT_CODE_SET STORAGE_PORT_CODE_SET
enum _STORAGE_MEDIA_TYPE STORAGE_MEDIA_TYPE
struct _STORAGE_BREAK_RESERVATION_REQUEST STORAGE_BREAK_RESERVATION_REQUEST
@ BusTypeFileBackedVirtual
struct _DEVICE_COPY_OFFLOAD_DESCRIPTOR DEVICE_COPY_OFFLOAD_DESCRIPTOR
struct _DEVICE_COPY_OFFLOAD_DESCRIPTOR * PDEVICE_COPY_OFFLOAD_DESCRIPTOR
struct _DEVICE_DATA_SET_RANGE * PDEVICE_DATA_SET_RANGE
struct _STORAGE_BUS_RESET_REQUEST STORAGE_BUS_RESET_REQUEST
struct _STORAGE_LB_PROVISIONING_MAP_RESOURCES STORAGE_LB_PROVISIONING_MAP_RESOURCES
struct _PERSISTENT_RESERVE_COMMAND * PPERSISTENT_RESERVE_COMMAND
struct _CLASS_MEDIA_CHANGE_CONTEXT CLASS_MEDIA_CHANGE_CONTEXT
struct _STORAGE_MEDIA_SERIAL_NUMBER_DATA STORAGE_MEDIA_SERIAL_NUMBER_DATA
STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR
STORAGE_MEDIUM_PRODUCT_TYPE_DESCRIPTOR
enum _STORAGE_MEDIA_TYPE * PSTORAGE_MEDIA_TYPE
struct _DEVICE_WRITE_AGGREGATION_DESCRIPTOR DEVICE_WRITE_AGGREGATION_DESCRIPTOR
struct _DEVICE_DATA_SET_LB_PROVISIONING_STATE * PDEVICE_DSM_ALLOCATION_OUTPUT
struct _STORAGE_IDLE_POWERUP_REASON STORAGE_IDLE_POWERUP_REASON
struct _GET_MEDIA_TYPES * PGET_MEDIA_TYPES
struct _DEVICE_DATA_SET_LBP_STATE_PARAMETERS * PDEVICE_DSM_ALLOCATION_PARAMETERS
struct _DEVICE_LB_PROVISIONING_DESCRIPTOR * PDEVICE_LB_PROVISIONING_DESCRIPTOR
struct _STORAGE_OFFLOAD_WRITE_OUTPUT * PSTORAGE_OFFLOAD_WRITE_OUTPUT
struct _STORAGE_IDLE_POWERUP_REASON * PSTORAGE_IDLE_POWERUP_REASON
struct _STORAGE_PRIORITY_HINT_SUPPORT STORAGE_PRIORITY_HINT_SUPPORT
enum _STORAGE_ASSOCIATION_TYPE STORAGE_ASSOCIATION_TYPE
struct _PREVENT_MEDIA_REMOVAL PREVENT_MEDIA_REMOVAL
enum _STORAGE_ASSOCIATION_TYPE * PSTORAGE_ASSOCIATION_TYPE
* PSTORAGE_ACCESS_ALIGNMENT_DESCRIPTOR
* PSTORAGE_DEVICE_DESCRIPTOR
struct _DEVICE_MANAGE_DATA_SET_ATTRIBUTES * PDEVICE_MANAGE_DATA_SET_ATTRIBUTES
struct _STORAGE_OFFLOAD_READ_OUTPUT * PSTORAGE_OFFLOAD_READ_OUTPUT
@ StorageMiniportProperty
@ StorageDeviceUniqueIdProperty
@ StorageDevicePhysicalTopologyProperty
@ StorageDeviceZonedDeviceProperty
@ StorageDeviceDependantDevicesProperty
@ StorageDeviceMediumProductType
@ StorageDeviceUnsafeShutdownCount
@ StorageAdapterRpmbProperty
@ StorageAdapterProtocolSpecificProperty
@ StorageDeviceFaultDomainProperty
@ StorageDeviceIoCapabilityProperty
@ StorageDeviceSeekPenaltyProperty
@ StorageAdapterPhysicalTopologyProperty
@ StorageDeviceIdProperty
@ StorageDeviceProtocolSpecificProperty
@ StorageDeviceLBProvisioningProperty
@ StorageDeviceDeviceTelemetryProperty
@ StorageAdapterCryptoProperty
@ StorageDeviceWriteAggregationProperty
@ StorageDeviceWriteCacheProperty
@ StorageDeviceTieringProperty
@ StorageDeviceManagementStatus
@ StorageDeviceTemperatureProperty
@ StorageDeviceNumaProperty
@ StorageDeviceAttributesProperty
@ StorageDeviceLocationProperty
@ StorageDeviceEnduranceProperty
@ StorageDeviceTrimProperty
@ StorageDevicePowerProperty
@ StorageDeviceClusportProperty
@ StorageAdapterSerialNumberProperty
@ StorageAdapterTemperatureProperty
@ StorageDeviceCopyOffloadProperty
@ StorageAccessAlignmentProperty
@ StorageDeviceResiliencyProperty
struct _DEVICE_DATA_SET_LBP_STATE_PARAMETERS DEVICE_DATA_SET_LBP_STATE_PARAMETERS
enum _STORAGE_BUS_TYPE * PSTORAGE_BUS_TYPE
struct _DEVICE_DATA_SET_LB_PROVISIONING_STATE_V2 * PDEVICE_DATA_SET_LB_PROVISIONING_STATE_V2
struct _STORAGE_BREAK_RESERVATION_REQUEST * PSTORAGE_BREAK_RESERVATION_REQUEST
struct _TAPE_STATISTICS TAPE_STATISTICS
* PSTORAGE_DEVICE_IO_CAPABILITY_DESCRIPTOR
struct _CLASS_MEDIA_CHANGE_CONTEXT * PCLASS_MEDIA_CHANGE_CONTEXT
struct _STORAGE_IDENTIFIER STORAGE_IDENTIFIER
struct _STORAGE_PROPERTY_QUERY * PSTORAGE_PROPERTY_QUERY
struct _DEVICE_DATA_SET_LB_PROVISIONING_STATE_V2 * PDEVICE_DSM_ALLOCATION_OUTPUT2
struct _DEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT DEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT
struct _DEVICE_TRIM_DESCRIPTOR DEVICE_TRIM_DESCRIPTOR
enum _STORAGE_QUERY_TYPE STORAGE_QUERY_TYPE
enum _STORAGE_BUS_TYPE STORAGE_BUS_TYPE
struct _DEVICE_LB_PROVISIONING_DESCRIPTOR DEVICE_LB_PROVISIONING_DESCRIPTOR
@ WriteCacheEnableUnknown
struct _STORAGE_IDLE_POWER * PSTORAGE_IDLE_POWER
struct _STORAGE_ALLOCATE_BC_STREAM_INPUT * PSTORAGE_ALLOCATE_BC_STREAM_INPUT
STORAGE_DEVICE_DESCRIPTOR
struct _DEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT * PDEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT
enum _WRITE_THROUGH WRITE_THROUGH
STORAGE_DEVICE_ID_DESCRIPTOR
@ StorageIdTypeLogicalUnitGroup
@ StorageIdTypePortRelative
@ StorageIdTypeMD5LogicalUnitIdentifier
@ StorageIdTypeTargetPortGroup
@ StorageIdTypeScsiNameString
@ StorageIdTypeVendorSpecific
enum _WRITE_CACHE_TYPE WRITE_CACHE_TYPE
@ PropertyQueryMaxDefined
struct _TAPE_GET_STATISTICS TAPE_GET_STATISTICS
STORAGE_DEVICE_IO_CAPABILITY_DESCRIPTOR
struct _TAPE_GET_STATISTICS * PTAPE_GET_STATISTICS
struct _STORAGE_PREDICT_FAILURE STORAGE_PREDICT_FAILURE
struct _STORAGE_LB_PROVISIONING_MAP_RESOURCES * PSTORAGE_LB_PROVISIONING_MAP_RESOURCES
struct _STORAGE_OFFLOAD_WRITE_OUTPUT STORAGE_OFFLOAD_WRITE_OUTPUT
struct _STORAGE_OFFLOAD_TOKEN * PSTORAGE_OFFLOAD_TOKEN
struct _STORAGE_HOTPLUG_INFO * PSTORAGE_HOTPLUG_INFO
struct _DEVICE_DSM_NOTIFICATION_PARAMETERS DEVICE_DSM_NOTIFICATION_PARAMETERS
struct _STORAGE_PREDICT_FAILURE * PSTORAGE_PREDICT_FAILURE
struct _STORAGE_OFFLOAD_READ_OUTPUT STORAGE_OFFLOAD_READ_OUTPUT
enum _STORAGE_PROPERTY_ID * PSTORAGE_PROPERTY_ID
struct _DEVICE_TRIM_DESCRIPTOR * PDEVICE_TRIM_DESCRIPTOR
#define STORAGE_OFFLOAD_TOKEN_ID_LENGTH
struct _DEVICE_POWER_DESCRIPTOR * PDEVICE_POWER_DESCRIPTOR
struct _DEVICE_DATA_SET_LBP_STATE_PARAMETERS * PDEVICE_DATA_SET_LBP_STATE_PARAMETERS
struct _STORAGE_GET_BC_PROPERTIES_OUTPUT * PSTORAGE_GET_BC_PROPERTIES_OUTPUT
struct _DEVICE_DSM_OFFLOAD_WRITE_PARAMETERS * PDEVICE_DSM_OFFLOAD_WRITE_PARAMETERS
@ StoragePortCodeSetReserved
@ StoragePortCodeSetStorport
@ StoragePortCodeSetATAport
@ StoragePortCodeSetSBP2port
@ StoragePortCodeSetUSBport
@ StoragePortCodeSetSpaceport
@ StoragePortCodeSetSCSIport
@ StoragePortCodeSetSDport
struct _DEVICE_MEDIA_INFO DEVICE_MEDIA_INFO
struct _STORAGE_DEVICE_NUMBER * PSTORAGE_DEVICE_NUMBER
STORAGE_WRITE_CACHE_PROPERTY
struct _DEVICE_DATA_SET_RANGE DEVICE_DATA_SET_RANGE
struct _DEVICE_DSM_OFFLOAD_READ_PARAMETERS * PDEVICE_DSM_OFFLOAD_READ_PARAMETERS
@ StorageIdNAAFormatIEEERegistered
@ StorageIdNAAFormatIEEEERegisteredExtended
@ StorageIdNAAFormatIEEEExtended
* PSTORAGE_MEDIUM_PRODUCT_TYPE_DESCRIPTOR
struct _STORAGE_GET_BC_PROPERTIES_OUTPUT STORAGE_GET_BC_PROPERTIES_OUTPUT
struct _DEVICE_DSM_NOTIFICATION_PARAMETERS * PDEVICE_DSM_NOTIFICATION_PARAMETERS
* PSTORAGE_DEVICE_ID_DESCRIPTOR
struct _DEVICE_MEDIA_INFO * PDEVICE_MEDIA_INFO
* PSTORAGE_ADAPTER_DESCRIPTOR
enum _STORAGE_IDENTIFIER_TYPE STORAGE_IDENTIFIER_TYPE
struct _GET_MEDIA_TYPES GET_MEDIA_TYPES
_STORAGE_ASSOCIATION_TYPE
struct _DEVICE_DATA_SET_LB_PROVISIONING_STATE DEVICE_DSM_ALLOCATION_OUTPUT
struct _PERSISTENT_RESERVE_COMMAND PERSISTENT_RESERVE_COMMAND
struct _DEVICE_DATA_SET_LBP_STATE_PARAMETERS DEVICE_DSM_ALLOCATION_PARAMETERS
struct _DEVICE_DATA_SET_LB_PROVISIONING_STATE_V2 DEVICE_DATA_SET_LB_PROVISIONING_STATE_V2
struct _DEVICE_DSM_OFFLOAD_READ_PARAMETERS DEVICE_DSM_OFFLOAD_READ_PARAMETERS
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
_In_opt_ WDFREQUEST _In_ ULONG MaximumTransferLength
ULONG MaximumTransferLengthPerDescriptor
ULONG OptimalTransferLengthPerDescriptor
ULONG MaximumTokenLifetime
USHORT OptimalTransferLengthGranularity
ULONG DefaultTokenLifetime
ULONGLONG MaximumTransferSize
ULONGLONG OptimalTransferCount
ULONG MaximumDataDescriptors
ULONG SlabAllocationBitMap[ANYSIZE_ARRAY]
ULONG SlabAllocationBitMapBitCount
ULONG SlabAllocationBitMapLength
ULONGLONG SlabSizeInBytes
ULONGLONG SlabOffsetDeltaInBytes
ULONG SlabOffsetDeltaInBytes
ULONGLONG SlabSizeInBytes
ULONG SlabAllocationBitMapLength
ULONG SlabAllocationBitMap[ANYSIZE_ARRAY]
ULONG SlabAllocationBitMapBitCount
STORAGE_OFFLOAD_TOKEN Token
UCHAR ThinProvisioningEnabled
ULONG MaxUnmapBlockDescriptorCount
UCHAR ThinProvisioningReadZeros
UCHAR UnmapGranularityAlignmentValid
ULONGLONG OptimalUnmapGranularity
ULONGLONG UnmapGranularityAlignment
ULONG TargetDetailedError
DEVICE_DATA_MANAGEMENT_SET_ACTION Action
DEVICE_DATA_MANAGEMENT_SET_ACTION Action
ULONG ParameterBlockLength
ULONG ParameterBlockOffset
ULONG DataSetRangesOffset
ULONG DataSetRangesLength
BOOLEAN IdlePowerManagementEnabled
BOOLEAN NoVerifyDuringIdlePower
BOOLEAN DeviceAttentionSupported
BOOLEAN AsynchronousNotificationSupported
BOOLEAN IncursSeekPenalty
BOOLEAN BenefitsFromWriteAggregation
struct _PERSISTENT_RESERVE_COMMAND::@3171::@3173 PR_OUT
__MINGW_EXTENSION union _PERSISTENT_RESERVE_COMMAND::@3171 DUMMYUNIONNAME
struct _PERSISTENT_RESERVE_COMMAND::@3171::@3172 PR_IN
ULONG NumOutStandingRequests
ULONGLONG MaximumRequestSize
ULONG EstimatedTimePerRequest
ULONG NumOutStandingRequests
ULONG MaximumRequestsPerPeriod
BOOLEAN WriteCacheEnableOverride
STORAGE_IDENTIFIER_CODE_SET CodeSet
STORAGE_ASSOCIATION_TYPE Association
STORAGE_IDENTIFIER_TYPE Type
STORAGE_POWERUP_REASON_TYPE PowerupReason
ULONGLONG AvailableMappingResources
UCHAR UsedMappingResourcesValid
UCHAR UsedMappingResourcesScope
UCHAR AvailableMappingResourcesValid
UCHAR AvailableMappingResourcesScope
ULONGLONG UsedMappingResources
BOOLEAN LUNResetSupported
BOOLEAN TargetResetSupported
BOOLEAN ExtraIoInfoSupported
STORAGE_PORT_CODE_SET Portdriver
ULONGLONG LengthProtected
STORAGE_OFFLOAD_TOKEN Token
UCHAR Reserved2[STORAGE_OFFLOAD_TOKEN_ID_LENGTH]
struct _STORAGE_OFFLOAD_TOKEN::@3174::@3175 StorageOffloadZeroDataToken
union _STORAGE_OFFLOAD_TOKEN::@3174 DUMMYUNIONNAME
UCHAR VendorSpecific[512]
STORAGE_QUERY_TYPE QueryType
UCHAR AdditionalParameters[1]
STORAGE_PROPERTY_ID PropertyId
LARGE_INTEGER UnrecoveredReads
LARGE_INTEGER RecoveredWrites
LARGE_INTEGER RecoveredReads
UCHAR CompressionRatioWrites
UCHAR CompressionRatioReads
LARGE_INTEGER UnrecoveredWrites
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE _In_ USHORT _In_ USHORT Version
_Reserved_ PVOID Reserved
_In_opt_ PUNICODE_STRING _In_ PDRIVER_OBJECT _In_ PDEVICE_OBJECT _In_ INTERFACE_TYPE BusType