STORAGE_PROTOCOL_DATA_DESCRIPTOR structure (winioctl.h)
This structure is used in conjunction with IOCTL_STORAGE_QUERY_PROPERTY to return protocol-specific data from a storage device or adapter. .
Syntax
typedef struct _STORAGE_PROTOCOL_DATA_DESCRIPTOR {
DWORD Version;
DWORD Size;
STORAGE_PROTOCOL_SPECIFIC_DATA ProtocolSpecificData;
} STORAGE_PROTOCOL_DATA_DESCRIPTOR, *PSTORAGE_PROTOCOL_DATA_DESCRIPTOR;
Members
Version
The version of this structure.
Size
The total size of the descriptor, including the space for all protocol data.
ProtocolSpecificData
The protocol-specific data, of type STORAGE_PROTOCOL_SPECIFIC_DATA.
Remarks
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.
- 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.
- 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.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Windows 10 |
Minimum supported server | Windows Server 2016 |
Header | winioctl.h (include Windows.h) |