IOCTL_SCSI_MINIPORT IOCTL (ntddscsi.h)
Отправляет специальную функцию управления в минипорт-драйвер адаптера узла (HBA). Результаты зависят от конкретного драйвера минипорта, в который пересылается этот запрос. Если вызывающий объект задает ненулевое length, входной или выходной буфер должен быть по крайней мере (размер(SRB_IO_CONTROL) + DataBufferLength)).
Чтобы получить все запущенные устройства класса ScsiAdapter, необходимо использовать api-интерфейсыXxx SetupDi. Получите свойства каждого экземпляра устройства и откройте его напрямую. %d SCSI (например, \\.\Scsi0:) — это символьная ссылка, а не все драйверы хранилища, создающих ссылку.
Заметка
В будущем драйвер портов SCSI и модели драйверов мини-порта SCSI могут быть изменены или недоступны. Вместо этого мы рекомендуем использовать драйвера Storport и минипорта Storport модели драйверов.
Основной код
Входной буфер
Буфер в Irp->AssociatedIrp.SystemBuffer должен содержать структуру SRB_IO_CONTROL.
Длина входного буфера
Parameters.DeviceIoControl.InputBufferLength указывает размер буфера в байтах, который должен быть по крайней мере sizeof(SRB_IO_CONTROL) с дополнительным хранилищем данных, если поле Length ненулево.
Выходной буфер
Обновленная структура SRB_IO_CONTROL возвращается в буфер с Irp->AssociatedIrp.SystemBuffer.
Длина выходного буфера
Длина структуры SRB_IO_CONTROL.
Буфер входных и выходных данных
Никакой.
Длина буфера ввода и вывода
Неприменимо.
Блок состояния
Поле сведений содержит количество байтов, возвращаемых в выходном буфере. Поле состояния указывает результаты операции.
Требования
Требование | Ценность |
---|---|
заголовка | ntddscsi.h (include Ntddscsi.h) |