IOCTL_STORAGE_QUERY_PROPERTY IOCTL (ntddstor.h)
Драйвер может использовать IOCTL_STORAGE_QUERY_PROPERTY для возврата свойств запоминающего устройства или адаптера. Запрос указывает тип извлекаемой информации, например данные запроса для устройства или возможности и ограничения адаптера. IOCTL_STORAGE_QUERY_PROPERTY также можно использовать для определения того, поддерживает ли драйвер порта определенное свойство или какие поля в дескрипторе свойства можно изменить с помощью последующего запроса на изменение свойства.
Основной код
Входной буфер
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) |