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