Поделиться через


структура STORAGE_PROTOCOL_SPECIFIC_DATA (ntddstor.h)

Описывает данные устройства, относящиеся к протоколу, предоставленные в буфере входных и выходных данных запроса IOCTL_STORAGE_QUERY_PROPERTY.

Синтаксис

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;

Члены

ProtocolType

Тип протокола. Значения этого элемента определяются в перечислении STORAGE_PROTOCOL_TYPE.

DataType

Тип данных протокола. Типы данных определяются в перечислениях STORAGE_PROTOCOL_NVME_DATA_TYPE и STORAGE_PROTOCOL_ATA_DATA_TYPE.

ProtocolDataRequestValue

Значение запроса данных протокола.

ProtocolDataRequestSubValue

Подзначное значение запроса данных протокола.

ProtocolDataOffset

Смещение буфера данных, начиная с начала этой структуры. Обычное значение может быть размер(STORAGE_PROTOCOL_SPECIFIC_DATA).

ProtocolDataLength

Длина данных протокола. ProtocolDataLength должен быть >= 512 байт.

FixedProtocolReturnData

Возвращенные данные.

ProtocolDataRequestSubValue2

Первое дополнительное значение вложенного запроса данных.

ProtocolDataRequestSubValue3

Второе дополнительное значение подзапросить данные.

ProtocolDataRequestSubValue4

Третье дополнительное значение вложенного запроса данных.

Замечания

При использовании IOCTL_STORAGE_QUERY_PROPERTY для получения сведений о протоколе в STORAGE_PROTOCOL_DATA_DESCRIPTORнастройте структуру STORAGE_PROPERTY_QUERY следующим образом:

  • Выделите буфер, который может содержать как STORAGE_PROPERTY_QUERY, так и структуру STORAGE_PROTOCOL_SPECIFIC_DATA.
  • Задайте для поля PropertyID значение StorageAdapterProtocolSpecificProperty или StorageDeviceProtocolSpecificProperty для запроса контроллера или пространства имен соответственно.
  • Задайте для поля QueryType значение PropertyStandardQuery.
  • Заполните структуру STORAGE_PROTOCOL_SPECIFIC_DATA нужными значениями. Начало STORAGE_PROTOCOL_SPECIFIC_DATA — это поле AdditionalParametersSTORAGE_PROPERTY_QUERY.

Чтобы указать тип сведений о протоколе NVMe, настройте структуру STORAGE_PROTOCOL_SPECIFIC_DATA следующим образом:

  • Задайте для поля ProtocolType значение ProtocolTypeNVMe.
  • Задайте для поля DataType значение перечисления, определенное STORAGE_PROTOCOL_NVME_DATA_TYPE:
    • NVMeDataTypeIdentify для получения данных контроллера идентификации или определения данных пространства имен.
    • NVMeDataTypeLogPage для получения страниц журналов (включая данные smart/health).
    • NVMeDataTypeFeature для получения функций диска NVMe.

Чтобы указать тип сведений о протоколе ATA, настройте структуру STORAGE_PROTOCOL_SPECIFIC_DATA следующим образом:

  • Задайте для поля ProtocolType значение ProtocolTypeAta .
  • Задайте для поля DataType значение перечисления, определенное STORAGE_PROTOCOL_ATA_DATA_TYPE:
    • Используйте ataDataTypeIdentify для идентификации диска ATA.
    • Используйте AtaDataTypeLogPage для получения страниц журналов с диска ATA.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 10
минимальный поддерживаемый сервер Windows Server 2016
заголовка ntddstor.h (include Ntddstor.h)

См. также

IOCTL_STORAGE_QUERY_PROPERTY

STORAGE_PROPERTY_ID

STORAGE_PROPERTY_QUERY

STORAGE_PROTOCOL_SPECIFIC_DATA_EXT