Поделиться через


Интерфейс порта SCSI с драйверами мини-порта SCSI

Обмен данными между драйвером порта SCSI и драйверами порта SCSI осуществляется с помощью блоков запросов SCSI (SRB) и процедур обратного вызова драйвера минипорта. Подробное описание процедур обратного вызова драйвера мини-порта SCSI см. в разделе Драйверы минипорта SCSI.

Обзор и определение отдельных функций SRB, флагов SRB и значений состояния SRB см. в разделе SCSI_REQUEST_BLOCK.

Обсуждение того, как драйверы минипорта должны реагировать на каждую отдельную функцию SRB, см. в статье SCSI Miniport Driver's HwScsiStartIo Routine.

Порт SCSI синхронно перенаправит srb в драйверы минипорта порта SCSI, за исключением случаев, когда адаптер поддерживает очередь с тегами. Адаптеры шины узла, поддерживающие очередь с тегами, могут ставить запросы в очередь и обрабатывать их в порядке, указанном тегами, которые порт SCSI назначает каждому запросу. Структура SCSI_REQUEST_BLOCK (SRB) содержит два элемента, которые драйвер порта SCSI использует для указания способа упорядочения srb во внутренней очереди адаптера узла: QueuedTag и QueueAction. Порт SCSI назначает значение count (тег ) элементу QueuedTag каждого SRB, указывающее порядок обработки пакетов адаптером. Значения тегов также позволяют порту SCSI отслеживать, какие srb успешно завершены, а какие srb истекло.

Члену QueueAction присваивается одно из следующих значений:

SRB_SIMPLE_TAG_REQUEST

SRB_HEAD_OF_QUEUE_TAG_REQUEST

SRB_ORDERED_QUEUE_TAG_REQUEST

Описание этих значений см. в спецификации SCSI-2.