KeXxxTimer 例程、KTIMER 对象和 DPC

从 Windows 2000 开始,可以使用一组 KeXxx计时器 例程来管理计时器。 这些例程使用基于 KTIMER 结构的计时器对象。 若要创建计时器对象,驱动程序首先为 KTIMER 结构分配存储。 然后驱动程序调用一个例程,例如 KeInitializeTimerKeInitializeTimerEx 来初始化此结构。

计时器可以设置为仅过期一次,或在给定间隔后重复过期。 KeSetTimer 始终设置一个计时器,该计时器将仅过期一次。 KeSetTimerEx 接受可选的 Period 参数,该参数指定定期计时器间隔。

可选的 CustomTimerDpc 例程(延迟过程调用的类型)可与通知计时器或同步计时器相关联。 此例程在指定的时间间隔过期时执行。 有关详细信息,请参阅 使用计时器对象

计时器可以是 通知计时器同步计时器

  • 当通知计时器发出信号时,所有等待线程都满足其等待。 计时器的状态将维持在信号状态,直到它被显式重置。

  • 当同步计时器到期时,其状态将被设置为“已通知”,直到释放一个等待线程。 然后,计时器将重置为 Not-Signaled 状态。

KeInitializeTimer 始终创建通知计时器。 KeInitializeTimerEx 接受 类型 参数,可以是 NotificationTimerSynchronizationTimer

以下主题提供有关计时器对象和 DPC 的详细信息:

使用计时器对象

计时器准确性

注册并排队自定义定时器DPC例程

提供 CustomTimerDpc 的上下文信息

使用 CustomTimerDpc 例程