Подпрограммы минипорта драйвера 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. |