EVT_WDF_TIMER回调函数 (wdftimer.h)

[适用于 KMDF 和 UMDF]

当指定的时间段已过时,将调用 EvtTimerFunc 事件回调函数。

语法

EVT_WDF_TIMER EvtWdfTimer;

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

参数

[in] Timer

从上一次调用 WdfTimerCreate获取的框架计时器对象的句柄。

返回值

没有

言论

若要注册 EvtTimerFunc 回调函数并指定框架调用此函数之前应经过的时间段,驱动程序必须调用 WdfTimerCreate

在版本 1.9 之前的 KMDF 版本中,框架实现 EvtTimerFunc 回调函数作为延迟过程调用(DPC)。 因此,在时间段过后,系统会向 DPC 队列添加对 EvtTimerFunc 回调函数的调用。 系统在 IRQL = DISPATCH_LEVEL 调用 EvtTimerFunc 回调函数,当它到达队列的前面,并且 IRQL < DISPATCH_LEVEL 上运行的 CPU 可用。

在 KMDF 版本 1.9 及更高版本中,默认情况下,框架实现 EvtTimerFunc 回调函数作为 DPC。 或者,如果驱动程序将计时器对象的执行级别设置为 WdfExecutionLevelPassive,则框架将从 IRQL = PASSIVE_LEVEL 工作项 调用 EvtTimerFunc 回调函数。

注意

如果在PASSIVE_LEVEL调用 WdfObjectDelete运行 EvtTimerFunc 回调函数,则会导致死锁。 相反,请等待父级在删除设备时自动删除计时器-或者,如果需要提前删除,请从计时器回调计划工作项以删除计时器。

从 UMDF 版本 2.0 开始,UMDF 驱动程序的 EvtTimerFunc 回调函数始终在PASSIVE_LEVEL运行。

有关框架计时器对象的详细信息,请参阅 使用计时器

要求

要求 价值
目标平台 普遍
最低 KMDF 版本 1.0
最低 UMDF 版本 2.0
标头 wdftimer.h (包括 Wdf.h)
IRQL 请参阅“备注”部分。

另请参阅

WdfTimerCreate