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

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

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

要求

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

另请参阅

WdfTimerCreate