Поделиться через


функция обратного вызова HW_INTERRUPT (storport.h)

Драйвер 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

См. также

HwStorDpcRoutine

StorPortIssueDpc