IOCTL_SCSI_GET_INQUIRY_DATA IOCTL (ntddscsi.h)
Возвращает данные запроса SCSI для всех устройств на заданном адаптере шины узла SCSI (HBA). Если IOCTL используется в пространстве пользователя, программа должна открыть дескриптор для HBA, который можно перечислить различными способами, такими как вызовы SetupDixxx. Вы можете использовать IOCTL_STORAGE_QUERY_PROPERTY для поиска сведений о конкретном устройстве в HBA. Чтобы определить необходимый размер выходного буфера, вызывающий объект должен отправить этот запрос IOCTL в цикле. Каждый раз, когда стек хранилища отклоняет IOCTL с сообщением об ошибке, указывающее, что буфер слишком мал, вызывающий объект должен удвоить размер буфера.
Основной код
Входной буфер
Нет.
Длина входного буфера
Нет.
Выходной буфер
Буфер в Irp-AssociatedIrp.SystemBuffer> содержит возвращенные данные запроса. Описание структуры данных запроса в выходном буфере см. в разделе SCSI_ADAPTER_BUS_INFO.
Длина выходного буфера
Parameters.DeviceIoControl.OutputBufferLength указывает размер буфера в байтах, который должен иметь >значение = (sizeof(SCSI_ADAPTER_BUS_INFO) + (NumberOfBuses) * sizeof(SCSI_BUS_DATA)) + (InquiryDataSize * NumberOfLUs), где параметр InquiryDataSize имеет значение (sizeof(SCSI_INQUIRY_DATA) - 1 + INQUIRYDATABUFFERSIZE), округленное до границы выравнивания.
Блок состояния
Поле Information содержит количество байтов, возвращаемых в выходном буфере. В поле Состояние указываются результаты операции.
Требования
Требование | Значение |
---|---|
Заголовок | ntddscsi.h (включая Ntddscsi.h) |