KeXxxTimer 例程、KTIMER 对象和 DPC

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

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

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

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

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

  • 当同步计时器过期时,其状态将设置为“已发出信号”,直到释放单个等待线程。 然后,计时器重置为Not-Signaled状态。

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

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

使用计时器对象

计时器准确性

CustomTimerDpc 例程注册和排队

提供 CustomTimerDpc 上下文信息

使用 CustomTimerDpc 例程