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


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

[Применимо к KMDF и UMDF]

Функция обратного вызова события EvtTimerFunc вызывается по истечении указанного периода времени.

Синтаксис

EVT_WDF_TIMER EvtWdfTimer;

void EvtWdfTimer(
  [in] WDFTIMER Timer
)
{...}

Параметры

[in] Timer

Дескриптор объекта таймера платформы, полученный из предыдущего вызова WdfTimerCreate.

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

None

Remarks

Чтобы зарегистрировать функцию обратного вызова EvtTimerFunc и указать период времени, который должен пройти до вызова этой функции платформой, драйвер должен вызвать WdfTimerCreate.

В версиях KMDF, предшествующих версии 1.9, платформа реализует функции обратного вызова EvtTimerFunc в качестве отложенных вызовов процедур (DPC). Таким образом, по истечении периода времени система добавляет вызов функции обратного вызова EvtTimerFunc в очередь DPC. Система вызывает функцию обратного вызова EvtTimerFunc по адресу IRQL = DISPATCH_LEVEL, когда она достигает передней части очереди и доступен ЦП, работающий на DISPATCH_LEVEL IRQL < .

В KMDF версии 1.9 и более поздних платформа по умолчанию реализует функции обратного вызова EvtTimerFunc в качестве DPC. Кроме того, если драйвер задает для объекта таймера уровень выполнения WdfExecutionLevelPassive, платформа вызывает функцию обратного вызова EvtTimerFunc из рабочего элемента в IRQL = PASSIVE_LEVEL.

Примечание

Если функция обратного вызова EvtTimerFunc , выполняющаяся в PASSIVE_LEVEL вызывает WdfObjectDelete, это приводит к взаимоблокировке. Вместо этого либо дождитесь автоматического удаления таймера родительского элемента при удалении устройства, либо, если необходимо удалить его раньше, запланируйте рабочий элемент из обратного вызова таймера.

Начиная с версии UMDF 2.0 функции обратного вызова EvtTimerFunc драйвера UMDF всегда выполняются в PASSIVE_LEVEL.

Дополнительные сведения об объектах таймера платформы см. в разделе Использование таймеров.

Требования

Требование Значение
Целевая платформа Универсальное
Минимальная версия KMDF 1,0
Минимальная версия UMDF 2,0
Верхняя часть wdftimer.h (включая Wdf.h)
IRQL См. раздел "Примечания".

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

WdfTimerCreate