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


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

Подпрограмма HwStorTimer вызывается через интервал, указанный, когда драйвер miniport называется StorPortNotification с параметром RequestTimerCall , указанным для параметра NotificationType .

Синтаксис

HW_TIMER HwTimer;

void HwTimer(
  PVOID DeviceExtension
)
{...}

Параметры

DeviceExtension

Указатель на место хранения драйвера мини-порта на хранилище HBA.

Возвращаемое значение

None

Remarks

Имя HwStorTimer является только заполнителем. Фактический прототип этой подпрограммы определен в Srb.h следующим образом:

typedef
VOID
HW_TIMER (
  _In_ PVOID  DeviceExtension
  );

Если мини-порт выбирает поддержку нескольких каналов, по-прежнему применяется блокировка спина StartIo. Однако если мини-порт запросил поддержку нескольких каналов через PERF_CONFIGURATION_DATA, блокировка спина StartIo не принимается и не проверяется перед вызовом HwStorStartIo в мини-порте. Это означает, что обратный вызов HwStorStartIo не синхронизируется с обратным вызовом к подпрограмме HwStorTimer при использовании поддержки нескольких каналов. Мини-порт должен делать это самостоятельно с помощью встроенной функции компилятора interlocked, например interlockedCompareExchange.

Подпрограмма HwStorTimer является необязательной.

Чтобы определить функцию обратного вызова HwStorTimer , необходимо сначала предоставить объявление функции, определяющее тип определяемой функции обратного вызова. Windows предоставляет набор типов функций обратного вызова для драйверов. Объявление функции с помощью типов функций обратного вызова помогает анализу кода для драйверов, средству проверки статических драйверов (SDV) и другим средствам проверки находить ошибки, и это требование для написания драйверов для операционной системы Windows.

Например, чтобы определить подпрограмму обратного вызова HwStorTimer с именем MyHwTimer, используйте следующий тип HW_TIMER и реализуйте подпрограмму обратного вызова следующим образом:

HW_TIMER MyHwTimer;

_Use_decl_annotations_
VOID
MyHwTimer (
  _In_ PVOID  DeviceExtension
  );
  {
      ...
  }

Тип функции HW_TIMER определяется в файле заголовка Storport.h. Чтобы более точно определить ошибки при запуске средств анализа кода, обязательно добавьте заметку Use_decl_annotations в определение функции. Заметка Use_decl_annotations гарантирует использование заметок, применяемых к типу функции HW_TIMER в файле заголовка. Дополнительные сведения о требованиях к объявлениям функций см. в разделе Объявление функций с помощью типов ролей функций для драйверов Storport. Сведения о Use_decl_annotations см. в статье О поведении функции.

Требования

Требование Значение
Целевая платформа Универсальное
Верхняя часть storport.h (включая Storport.h)
IRQL DISPATCH_LEVEL

См. также раздел

StorPortNotification