WdfTimerStop 函数 (wdftimer.h)
[适用于 KMDF 和 UMDF]
WdfTimerStop 方法停止计时器的时钟。
语法
BOOLEAN WdfTimerStop(
[in] WDFTIMER Timer,
[in] BOOLEAN Wait
);
参数
[in] Timer
通过调用 WdfTimerCreate获取的框架计时器对象的句柄。
[in] Wait
KMDF 布尔值,如果 TRUE,则指定在对驱动程序延迟过程调用(DPC)的所有排队调用(包括驱动程序 EvtTimerFunc 回调函数)之前,框架才会返回。
UMDF 布尔值,如果 TRUE,则指定在执行计时器 EvtTimerFunc 回调函数之前,框架不会返回。
返回值
WdfTimerStop 如果计时器对象位于系统的计时器队列中,则返回 true TRUE。 否则,此方法返回 FALSE。 有关详细信息,请参阅以下“备注”部分。
如果驱动程序提供无效的对象句柄,则会发生 bug 检查。
言论
当驱动程序调用 WdfTimerStart时,其计时器对象将添加到系统的计时器对象队列中。 如果计时器不是定期计时器,系统将在计时器的“到期时间”过后从队列中删除计时器对象。 如果计时器是定期计时器,计时器对象将保留在队列中,直到驱动程序调用 WdfTimerStop。
有关框架计时器对象的详细信息,请参阅 使用计时器。
如果 Wait 参数 TRUE,则必须在 IRQL = PASSIVE_LEVEL 调用 WdfTimerStop。 否则,必须在 IRQL <= DISPATCH_LEVEL调用此方法。
请勿从 EvtTimerFunc 内部调用 WdfTimerStop,Wait 参数设置为 TRUE。 这样做可能会导致死锁。
谨慎
如果启用了验证程序,则对同一计时器对象的 WdfTimerStop 的并发调用将中断到调试器中。 有关详细信息,请参阅 使用 KMDF 验证程序。
例子
下面的代码示例停止指定的计时器,并等待所有驱动程序排队的 DPC 执行。
WdfTimerStop(
timerHandle,
TRUE
);
要求
要求 | 价值 |
---|---|
目标平台 | 普遍 |
最低 KMDF 版本 | 1.0 |
最低 UMDF 版本 | 2.0 |
标头 | wdftimer.h (包括 Wdf.h) |
库 | Wdf01000.sys(KMDF):WUDFx02000.dll (UMDF) |
IRQL | 请参阅“备注”部分。 |
DDI 符合性规则 | DriverCreate(kmdf),KmdfIrql(kmdf),KmdfIrql2(kmdf),KmdfIrqlExplicit(kmdf) |