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