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

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

Синтаксис

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;

Члены

ProtocolType

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

DataType

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

ProtocolDataRequestValue

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

ProtocolDataRequestSubValue

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

ProtocolDataOffset

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

ProtocolDataLength

Длина данных протокола.

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
Верхняя часть winioctl.h (включая Windows.h)

См. также раздел

IOCTL_STORAGE_QUERY_PROPERTY

STORAGE_PROPERTY_QUERY