Подпрограммы драйвера Storport для мини-портов
Драйвер мини-порта, работающий с драйвером Storport, должен содержать реализации описаний подпрограмм, перечисленных в этом разделе, и предоставлять их через структуру HW_INITIALIZATION_DATA на этапе инициализации драйвера минипорта.
Подпрограммы драйверов для мини-портов Storport в большинстве случаев эквивалентны их аналогам портов SCSI (дополнительные сведения см. в разделе Подпрограммы драйверов SCSI Miniport ). Однако между структурой драйвера порта SCSI и драйвера Storport существуют важные различия, и эти процедуры должны соответствовать этим различиям.
Например, драйверы мини-портов, работающие с драйвером Storport, всегда должны быть готовы к получению еще одного запроса ввода-вывода после завершения подпрограммы HwStorStartIo . Для этого не требуется драйвер мини-порта, работающий с портом SCSI. Версия порта SCSI не получает новый запрос ввода-вывода, пока явно не уведомит драйвер порта с помощью функции StorPortNotification о том, что он подготовлен к обработке другого запроса.
Если версия storport драйвера мини-порта не может обработать запрос во время его отправки, она имеет набор функций управления очередями, недоступных для версии порта SCSI, которые позволяют ему справиться с перегрузкой. Как и версия порта SCSI, версия драйвера мини-порта Storport завершает запрос с SRB_STATUS_BUSY, но в отличие от версии порта SCSI, она также может пометить очередь устройств как занятую с помощью процедуры StorPortDeviceBusy . Аналогичные функции позволяют драйверу мини-порта приостанавливать и возобновлять обработку на уровне адаптера.
Дополнительные сведения о процедурах поддержки, предоставляемых драйвером Storport, см. в статье Процедуры поддержки драйверов Storport.
Дополнительные сведения о драйвере Storport см. в разделе Драйверы портов хранилища.
Ниже приведены подпрограммы драйвера мини-порта.
Подпрограмма | Описание |
---|---|
HW_MESSAGE_SIGNALED_INTERRUPT_ROUTINE | Обрабатывает прерывание с сигналом сообщения (MSI). |
HW_ADAPTER_CONTROL | Выполняет синхронные операции для управления состоянием или поведением адаптера, такие как остановка или перезапуск адаптера для управления питанием. |
HW_BUILDIO | Обрабатывает SRB с несинхронизированным доступом к общим системным структурам данных перед передачей в HwStorStartIo. |
HW_DPC_ROUTINE | Подпрограмма, которая откладывается для выполнения в DISPATCH 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 со значением RequestTimerCallNotificationType . |
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 как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по