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。 否则,此方法返回 FALSE。 有关更多信息,请参见下面的“备注”部分。
如果驱动程序提供无效的对象句柄,则会发生 bug 检查。
注解
当驱动程序调用 WdfTimerStart 时,其计时器对象将添加到系统的计时器对象队列中。 如果计时器不是定期计时器,则系统将在计时器的“到期时间”过后从队列中删除计时器对象。 如果计时器是定期计时器,则计时器对象将保留在队列中,直到驱动程序调用 WdfTimerStop。
有关框架计时器对象的详细信息,请参阅 使用计时器。
如果 Wait 参数为 TRUE,则必须在 IRQL = PASSIVE_LEVEL调用 WdfTimerStop。 否则,必须在 IRQL <= DISPATCH_LEVEL调用此方法。
请勿在 Wait 参数设置为 TRUE 的情况下从 EvtTimerFunc 内部调用 WdfTimerStop。 这样做可能会导致死锁。
示例
下面的代码示例停止指定的计时器,并等待驱动程序的所有排队 DPC 执行。
WdfTimerStop(
timerHandle,
TRUE
);
要求
要求 | 值 |
---|---|
目标平台 | 通用 |
最低 KMDF 版本 | 1.0 |
最低 UMDF 版本 | 2.0 |
标头 | wdftimer.h (包括 Wdf.h) |
Library | Wdf01000.sys (KMDF) ;WUDFx02000.dll (UMDF) |
IRQL | 请参见“备注”部分。 |
DDI 符合性规则 | DriverCreate (kmdf) 、 KmdfIrql (kmdf) 、 KmdfIrql2 (kmdf) 、 KmdfIrqlExplicit (kmdf) |
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈