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


структура 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

Смещение буфера данных от начала этой структуры. Типичным значением может быть sizeof(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 (включая Ntddstor.h)

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

IOCTL_STORAGE_QUERY_PROPERTY

STORAGE_PROPERTY_ID

STORAGE_PROPERTY_QUERY

STORAGE_PROTOCOL_SPECIFIC_DATA_EXT