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

A miniport driver that works with the Storport driver must contain implementations of the routine descriptions listed in this section, and it must expose them through a HW_INITIALIZATION_DATA structure during the miniport driver's initialization phase.

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

For instance:

  • A Storport miniport driver must always be prepared to receive another I/O request after its HwStorStartIo routine completes.
  • Драйвер минипорта SCSI не имеет этого требования. It doesn't receive a new I/O request until it explicitly signals the port driver when it can handle another request by calling StorPortNotification.

Если драйвер минипорта Storport не может немедленно обработать отправленный запрос, он имеет набор функций управления очередями, которые позволяют ему справиться с перегрузкой. Эти функции управления очередями недоступны для драйвера мини-порта SCSI. Like the SCSI miniport driver, the Storport miniport driver completes the request with SRB_STATUS_BUSY. But unlike the SCSI port version, it can also mark the device queue as busy using the StorPortDeviceBusy routine. Аналогичные функции позволяют драйверу минипорта Storport приостановить и возобновить обработку на уровне адаптера.

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

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

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

Routine Description
HW_MESSAGE_SIGNALED_INTERRUPT_ROUTINE Обрабатывает сигнальное прерывание сообщения (MSI).
HW_ADAPTER_CONTROL Выполняет синхронные операции для управления состоянием или поведением адаптера, например остановкой или перезапуском HBA для управления питанием.
HW_BUILDIO Processes the SRB with unsynchronized access to shared system data structures before passing it to HwStorStartIo.
HW_DPC_ROUTINE Подпрограмма, отложенная для выполнения в ДИСПЕТЧЕРЕ IRQL с механизмом отложенного вызова процедуры (DPC).
HW_FIND_ADAPTER Использует указанную конфигурацию, чтобы определить, поддерживается ли определенная HBA, и, если это так, для возврата сведений о конфигурации этого адаптера.
HW_INITIALIZE Инициализирует мини-драйвер после перезагрузки системы или сбоя питания.
HW_INTERRUPT The Storport driver calls the HwStorInterrupt routine after the HBA generates an interrupt request.
HW_PASSIVE_INITIALIZE_ROUTINE Called after the HwStorInitialize routine when the current IRQL is at PASSIVE_LEVEL.
HW_RESET_BUS Вызывается драйвером порта для очистки условий ошибки.
HW_STARTIO The Storport driver calls the HwStorStartIo routine one time for each incoming I/O request.
HW_TIMER Called after the interval that is specified when the miniport driver called StorPortNotification with the RequestTimerCallNotificationType value.
HW_TRACING_ENABLED Позволяет Storport уведомлять мини-порт о включении трассировки событий.
HW_UNIT_CONTROL Вызывается для выполнения синхронных операций для управления состоянием устройства единицы хранения. Минипорт-драйвер уведомляется о запуске единицы или обработке перехода состояния питания для устройства единицы.
HW_WORKITEM Функция обратного вызова с минипортом для обработки запроса рабочего элемента Storport.