// ntddstor.h
typedef struct _STORAGE_PROTOCOL_SPECIFIC_DATA {
STORAGE_PROTOCOL_TYPE ProtocolType;
ULONG DataType;
ULONG ProtocolDataRequestValue;
ULONG ProtocolDataRequestSubValue;
ULONG ProtocolDataOffset;
ULONG ProtocolDataLength;
ULONG FixedProtocolReturnData;
ULONG ProtocolDataRequestSubValue2;
ULONG ProtocolDataRequestSubValue3;
ULONG ProtocolDataRequestSubValue4;
} STORAGE_PROTOCOL_SPECIFIC_DATA, *PSTORAGE_PROTOCOL_SPECIFIC_DATA;
View the official Windows Driver Kit DDI reference// winioctl.h
typedef struct _STORAGE_PROTOCOL_SPECIFIC_DATA {
STORAGE_PROTOCOL_TYPE ProtocolType;
DWORD DataType;
DWORD ProtocolDataRequestValue;
DWORD ProtocolDataRequestSubValue;
DWORD ProtocolDataOffset;
DWORD ProtocolDataLength;
DWORD FixedProtocolReturnData;
DWORD ProtocolDataRequestSubValue2;
DWORD ProtocolDataRequestSubValue3;
DWORD ProtocolDataRequestSubValue4;
} STORAGE_PROTOCOL_SPECIFIC_DATA, *PSTORAGE_PROTOCOL_SPECIFIC_DATA;
View the official Win32 API referenceNo description available.
Describes protocol-specific device data, provided in the input and output buffer of an IOCTL_STORAGE_QUERY_PROPERTY request.
ProtocolTypeThe protocol type. Values for this member are defined in the STORAGE_PROTOCOL_TYPE enumeration.
DataTypeThe protocol data type. Data types are defined in the STORAGE_PROTOCOL_NVME_DATA_TYPE and STORAGE_PROTOCOL_ATA_DATA_TYPE enumerations.
ProtocolDataRequestValueThe protocol data request value.
ProtocolDataRequestSubValueThe sub value of the protocol data request.
ProtocolDataOffsetThe offset of the data buffer that is from the beginning of this structure. The typical value can be sizeof(STORAGE_PROTOCOL_SPECIFIC_DATA).
ProtocolDataLengthThe length of the protocol data. ProtocolDataLength must be >= 512 bytes.
FixedProtocolReturnDataThe returned data.
ProtocolDataRequestSubValue2First additional data sub request value.
ProtocolDataRequestSubValue3Second additional data sub request value.
ProtocolDataRequestSubValue4Third additional data sub request value.
When using IOCTL_STORAGE_QUERY_PROPERTY to retrieve protocol-specific information in the STORAGE_PROTOCOL_DATA_DESCRIPTOR, configure the STORAGE_PROPERTY_QUERY structure as follows:
To specify a type of NVMe protocol-specific information, configure the STORAGE_PROTOCOL_SPECIFIC_DATA structure as follows:
To specify a type of ATA protocol-specific information, configure the STORAGE_PROTOCOL_SPECIFIC_DATA structure as follows:
STORAGE_PROTOCOL_SPECIFIC_DATA_EXT
Describes protocol-specific device data, provided in the input and output buffer of an IOCTL_STORAGE_QUERY_PROPERTY request.
ProtocolTypeThe protocol type. Values for this member are defined in the STORAGE_PROTOCOL_TYPE enumeration.
DataTypeThe protocol data type. Data types are defined in the STORAGE_PROTOCOL_NVME_DATA_TYPE and STORAGE_PROTOCOL_ATA_DATA_TYPE enumerations.
ProtocolDataRequestValueThe protocol data request value.
ProtocolDataRequestSubValueThe sub value of the protocol data request.
ProtocolDataOffsetThe offset of the data buffer that is from the beginning of this structure. The typical value can be sizeof(STORAGE_PROTOCOL_SPECIFIC_DATA).
ProtocolDataLengthThe length of the protocol data.
FixedProtocolReturnDataThe returned data.
ProtocolDataRequestSubValue2ProtocolDataRequestSubValue3ReservedReserved for future use.
When using IOCTL_STORAGE_QUERY_PROPERTY to retrieve protocol-specific information in the STORAGE_PROTOCOL_DATA_DESCRIPTOR, configure the STORAGE_PROPERTY_QUERY structure as follows:
To specify a type of NVMe protocol-specific information, configure the STORAGE_PROTOCOL_SPECIFIC_DATA structure as follows:
To specify a type of ATA protocol-specific information, configure the STORAGE_PROTOCOL_SPECIFIC_DATA structure as follows: