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


Подпрограммы минипорта драйвера Storport

Минипорт-драйвер, работающий с драйвером Storport, должен содержать реализации описаний подпрограмм, перечисленных в этом разделе, и он должен предоставлять их через HW_INITIALIZATION_DATA структуру во время этапа инициализации минипорта драйвера.

Подпрограммы драйвера минипорта Storport в большинстве случаев эквивалентны их аналогам порта SCSI. Однако существуют важные различия между проектированием драйвера портов SCSI и драйвером Storport, а подпрограммы минипорта должны соответствовать этим различиям.

Например:

  • Драйвер минипорта Storport всегда должен быть готов к получению другого запроса ввода-вывода после завершения процедуры HwStorStartIo.
  • Драйвер минипорта SCSI не имеет этого требования. Он не получает новый запрос ввода-вывода, пока он явно не сигнализирует драйверу порта, когда он может обрабатывать другой запрос путем вызова StorPortNotification.

Если драйвер минипорта Storport не может немедленно обработать отправленный запрос, он имеет набор функций управления очередями, которые позволяют ему справиться с перегрузкой. Эти функции управления очередями недоступны для драйвера мини-порта SCSI. Как и драйвер минипорта SCSI, драйвер минипорта Storport завершает запрос с SRB_STATUS_BUSY. Но в отличие от версии порта SCSI, он также может пометить очередь устройств как занятую с помощью подпрограммы StorPortDeviceBusy . Аналогичные функции позволяют драйверу минипорта Storport приостановить и возобновить обработку на уровне адаптера.

Дополнительные сведения о подпрограммах поддержки, предоставляемых драйвером Storport, см . в разделах подпрограмм поддержки драйверов Storport.

Дополнительные сведения о драйвере Storport см. в разделе "Драйверы портов хранилища".

Список подпрограмм драйвера минипорта Storport

Маршрут Description
HW_MESSAGE_SIGNALED_INTERRUPT_ROUTINE Обрабатывает сигнальное прерывание сообщения (MSI).
HW_ADAPTER_CONTROL Выполняет синхронные операции для управления состоянием или поведением адаптера, например остановкой или перезапуском HBA для управления питанием.
HW_BUILDIO Обрабатывает SRB с несинхронизированным доступом к общим системным структурам данных перед передачей в HwStorStartIo.
HW_DPC_ROUTINE Подпрограмма, отложенная для выполнения в ДИСПЕТЧЕРЕ IRQL с механизмом отложенного вызова процедуры (DPC).
HW_FIND_ADAPTER Использует указанную конфигурацию, чтобы определить, поддерживается ли определенная HBA, и, если это так, для возврата сведений о конфигурации этого адаптера.
HW_INITIALIZE Инициализирует мини-драйвер после перезагрузки системы или сбоя питания.
HW_INTERRUPT Драйвер Storport вызывает подпрограмму HwStorInterrupt после того, как HBA создает запрос прерывания.
HW_PASSIVE_INITIALIZE_ROUTINE Вызывается после подпрограммы HwStorInitialize, когда текущий IRQL находится на PASSIVE_LEVEL.
HW_RESET_BUS Вызывается драйвером порта для очистки условий ошибки.
HW_STARTIO Драйвер Storport вызывает подпрограмму HwStorStartIo один раз для каждого входящего запроса ввода-вывода.
HW_TIMER Вызывается после интервала, указанного при использовании мини-драйвера StorPortNotification со значением RequestTimerCall NotificationType .
HW_TRACING_ENABLED Позволяет Storport уведомлять мини-порт о включении трассировки событий.
HW_UNIT_CONTROL Вызывается для выполнения синхронных операций для управления состоянием устройства единицы хранения. Минипорт-драйвер уведомляется о запуске единицы или обработке перехода состояния питания для устройства единицы.
HW_WORKITEM Функция обратного вызова с минипортом для обработки запроса рабочего элемента Storport.