Подпрограммы минипорта драйвера Storport
Минипорт-драйвер, работающий с драйвером Storport, должен содержать реализации описаний подпрограмм, перечисленных в этом разделе, и он должен предоставлять их через структуру HW_INITIALIZATION_DATA во время этапа инициализации минипорта драйвера.
Подпрограммы драйверов минипорта Storport в большинстве случаев эквивалентны их аналогам портов SCSI (дополнительные сведения см. в подпрограммах драйвера минипорта SCSI). Однако существуют важные различия между проектированием драйвера порта SCSI и драйвером Storport, и эти подпрограммы должны учитывать эти различия.
Например, минипорт-драйверы, работающие с драйвером Storport, всегда должны быть готовы к получению другого запроса ввода-вывода после завершения подпрограммы HwStorStartIo . Для этого не требуется мини-драйвер, работающий с портом SCSI. Версия порта SCSI не получает новый запрос ввода-вывода, пока он явно не сигнализирует драйверу порта с помощью функции StorPortNotification , которую он готов обрабатывать другой запрос.
Если версия драйвера мини-порта Storport не может обрабатывать запрос во время отправки, он имеет набор функций управления очередями, недоступных для версии порта SCSI, что позволяет ей справиться с перегрузкой. Как и версия порта SCSI, версия драйвера минипорта Storport завершает запрос с SRB_STATUS_BUSY, но в отличие от версии порта SCSI, он также может пометить очередь устройств как занятую с помощью подпрограммы StorPortDeviceBusy . Аналогичные функции позволяют мини-драйверу приостановить и возобновить обработку на уровне адаптера.
Дополнительные сведения о подпрограммах поддержки, предоставляемых драйвером 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. |
STORPORT_TELEMETRY_EVENT | Описывает полезные данные телеметрии мини-порта. |
StorPortLogTelemetry | Регистрирует событие телеметрии мини-порта для диагностики или сбора полезных сведений. Минипорт может регистрировать восемь пар имени общего назначения и буфер с максимальной длиной 4 КБ, а также несколько связанных событий полей, определенных в структуре STORPORT_TELEMETRY_EVENT. |
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по