STORAGE_PROTOCOL_DATA_DESCRIPTOR structure (ntddstor.h)
This structure is used in conjunction with IOCTL_STORAGE_SET_PROPERTY and IOCTL_STORAGE_QUERY_PROPERTY to respectively set or query protocol-specific data from a storage device or adapter.
typedef struct _STORAGE_PROTOCOL_DATA_DESCRIPTOR {
ULONG Version;
ULONG Size;
STORAGE_PROTOCOL_SPECIFIC_DATA ProtocolSpecificData;
} STORAGE_PROTOCOL_DATA_DESCRIPTOR, *PSTORAGE_PROTOCOL_DATA_DESCRIPTOR;
Version
Version of this structure. Set to sizeof(STORAGE_PROTOCOL_DATA_DESCRIPTOR).
Size
Total size in bytes of the descriptor, including the space for all protocol data. Must be => sizeof(STORAGE_PROTOCOL_DATA_DESCRIPTOR).
ProtocolSpecificData
The protocol-specific data, of type STORAGE_PROTOCOL_SPECIFIC_DATA.
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:
- Allocate a buffer that can contains both a STORAGE_PROPERTY_QUERY and a STORAGE_PROTOCOL_SPECIFIC_DATA structure.
- Set the PropertyID field to StorageAdapterProtocolSpecificProperty or StorageDeviceProtocolSpecificProperty for a controller or device/namespace request, respectively.
- Set the QueryType field to PropertyStandardQuery.
- Fill the STORAGE_PROTOCOL_SPECIFIC_DATA structure with the desired values. The start of the STORAGE_PROTOCOL_SPECIFIC_DATA is the AdditionalParameters field of STORAGE_PROPERTY_QUERY.
To specify a type of NVMe protocol-specific information, configure the STORAGE_PROTOCOL_SPECIFIC_DATA structure as follows:
- Set the ProtocolType field to ProtocolTypeNVMe.
- Set the DataType field to an enumeration value defined by STORAGE_PROTOCOL_NVME_DATA_TYPE:
- Use NVMeDataTypeIdentify to get Identify Controller data or Identify Namespace data.
- Use NVMeDataTypeLogPage to get log pages (including SMART/health data).
- Use NVMeDataTypeFeature to get features of the NVMe drive.
To specify a type of ATA protocol-specific information, configure the STORAGE_PROTOCOL_SPECIFIC_DATA structure as follows:
- Set the ProtocolType field to ProtocolTypeAta.
- Set the DataType field to an enumeration value defined by STORAGE_PROTOCOL_ATA_DATA_TYPE:
- Use AtaDataTypeIdentify to identify the ATA drive.
- Use AtaDataTypeLogPage to get log pages from the ATA drive.
Requirement | Value |
---|---|
Minimum supported client | Windows 10 |
Minimum supported server | Windows Server 2016 |
Header | ntddstor.h (include Ntddstor.h) |