IOCTL_STORAGE_QUERY_PROPERTY IOCTL (ntddstor.h)

Драйвер может использовать IOCTL_STORAGE_QUERY_PROPERTY для возврата свойств запоминающего устройства или адаптера. Запрос указывает тип извлекаемой информации, например данные запроса для устройства или возможности и ограничения адаптера. IOCTL_STORAGE_QUERY_PROPERTY также можно использовать для определения того, поддерживает ли драйвер порта определенное свойство или какие поля в дескрипторе свойства можно изменить с помощью последующего запроса на изменение свойства.

Основной код

IRP_MJ_DEVICE_CONTROL

Входной буфер

Parameters.DeviceIoControl.InputBufferLength указывает размер (в байтах) буфера параметров в Irp-AssociatedIrp.SystemBuffer>, который должен иметь >значение = sizeof(STORAGE_PROPERTY_QUERY).

Irp->AssociatedIrp.SystemBuffer содержит STORAGE_PROPERTY_QUERY данные, указывающие, следует ли запрашивать устройство или адаптер, тип запроса для выполнения и все дополнительные параметры, необходимые для запроса, такие как код страницы для определенной страницы контроля режима SCSI. Свойства устройства должны быть получены только с устройства; Попытка получить свойства устройства из адаптера приведет к ошибке.

Parameters.DeviceIoControl.OutputBufferLength указывает количество байтов, которые можно записать в Irp-AssociatedIrp.SystemBuffer>. OutputBufferLength может быть равен нулю, чтобы определить, существует ли свойство без извлечения его данных.

Длина входного буфера

Parameters.DeviceIoControl.InputBufferLength указывает размер (в байтах) буфера параметров в Irp-AssociatedIrp.SystemBuffer>, который должен иметь >значение = sizeof(STORAGE_PROPERTY_QUERY).

Выходной буфер

Драйвер возвращает данные запроса в буфер по адресу Irp-AssociatedIrp.SystemBuffer>. К структуре можно добавить различные объемы данных, относящихся к шине.

Длина выходного буфера

Приведите структуру, возвращенную в STORAGE_DESCRIPTOR_HEADER, и проверка ее член Size, чтобы определить количество байтов, необходимых структуре.

Блок состояния

В поле Сведения задано количество возвращаемых байтов. Для поля Состояние задано значение STATUS_SUCCESS или, возможно, STATUS_INVALID_DEVICE_REQUEST, STATUS_INVALID_PARAMETER или STATUS_NOT_SUPPORTED.

Требования

Требование Значение
Заголовок ntddstor.h (включая Ntddstor.h)

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

STORAGE_DESCRIPTOR_HEADER

STORAGE_PROPERTY_QUERY

STORAGE_RPMB_DATA_FRAME