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 | 请参阅“备注”部分。 |