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.

Syntax

typedef struct _STORAGE_PROTOCOL_DATA_DESCRIPTOR {
  ULONG                          Version;
  ULONG                          Size;
  STORAGE_PROTOCOL_SPECIFIC_DATA ProtocolSpecificData;
} STORAGE_PROTOCOL_DATA_DESCRIPTOR, *PSTORAGE_PROTOCOL_DATA_DESCRIPTOR;

Members

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.

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:

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.

Requirements

Requirement Value
Minimum supported client Windows 10
Minimum supported server Windows Server 2016
Header ntddstor.h (include Ntddstor.h)

See also

IOCTL_STORAGE_QUERY_PROPERTY

IOCTL_STORAGE_SET_PROPERTY

STORAGE_PROPERTY_ID

STORAGE_PROPERTY_QUERY

STORAGE_PROTOCOL_SPECIFIC_DATA

STORAGE_PROTOCOL_SPECIFIC_DATA_EXT