Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Драйвер Storport вызывает подпрограмму HwStorInterrupt после того, как HBA создает запрос прерывания.
Синтаксис
HW_INTERRUPT HwInterrupt;
BOOLEAN HwInterrupt(
PVOID DeviceExtension
)
{...}
Параметры
DeviceExtension
Указатель на минипорт драйвер на область хранения HBA.
Возвращаемое значение
Если минипорт-драйвер обнаружит, что его HBA не создавал прерывание, HwStorInterrupt должен вернуть ЗНАЧЕНИЕ FALSE как можно скорее. Подпрограмма HwStorInterrupt должна возвращаться в пределах 50 микросекунд.
Замечания
Имя HwStorInterrupt — это просто заполнитель. Фактический прототип этой подпрограммы определен в Storport.h следующим образом:
typedef
BOOLEAN
HW_INTERRUPT (
IN PVOID DeviceExtension
);
Подпрограмма HwStorInterrupt должна возвращаться в пределах 50 микросекунд, в идеале как можно меньше времени. Поэтому все действия не должны выполняться при высокой нагрузке IRQL, следует отложить в HwStorDpcRoutine , который определен в мини-драйвере и выдан с помощью StorPortIssueDpc. Задержка DPC очень низка, и она будет вызываться сразу после возврата из высокого IRQL.
Драйвер порта вызывает подпрограмму HwStorInterrupt в DIRQL.
Примеры
Чтобы определить функцию обратного вызова HwStorInterrupt , необходимо сначала указать объявление функции, определяющее тип определяемой функции обратного вызова. Windows предоставляет набор типов функций обратного вызова для драйверов. Объявление функции с помощью типов функций обратного вызова помогает анализу кода для драйверов, средства проверки статических драйверов (SDV) и других средств проверки найти ошибки, и это требование для написания драйверов для операционной системы Windows.
Например, чтобы определить подпрограмму обратного вызова HwStorInterrupt с именем MyHwInterrupt, используйте тип HW_INTERRUPT , как показано в этом примере кода:
HW_INTERRUPT MyHwInterrupt;
Затем реализуйте подпрограмму обратного вызова следующим образом:
_Use_decl_annotations_
BOOLEAN
MyHwInterrupt (
_In_ PVOID DeviceExtension
);
{
...
}
Тип функции HW_INTERRUPT определен в файле заголовка Storport.h. Чтобы более точно определить ошибки при запуске средств анализа кода, обязательно добавьте в определение функции заметку Use_decl_annotations . Заметка Use_decl_annotations гарантирует, что используются заметки, применяемые к типу функции HW_INTERRUPT в файле заголовка. Дополнительные сведения о требованиях к объявлениям функций см. в разделе "Объявление функций" с помощью типов ролей функций для драйверов Storport. Сведения о Use_decl_annotations см. в разделе " Поведение функции аннотирования".
Требования
| Требование | Ценность |
|---|---|
| целевая платформа | Всеобщий |
| Header | storport.h (include Storport.h) |
| IRQL | DIRQL |