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


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

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

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

Синтаксис

EVT_WDF_TIMER EvtWdfTimer;

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

Параметры

[in] Timer

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

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

Никакой

Замечания

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

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

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

Заметка

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

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

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

Требования

Требование Ценность
целевая платформа Всеобщий
минимальная версия KMDF 1.0
минимальная версия UMDF 2.0
заголовка wdftimer.h (include Wdf.h)
IRQL См. раздел "Примечания".

См. также

WdfTimerCreate