从 Windows 2000 开始,可以使用一组 KeXxx计时器 例程来管理计时器。 这些例程使用基于 KTIMER 结构的计时器对象。 若要创建计时器对象,驱动程序首先为 KTIMER 结构分配存储。 然后驱动程序调用一个例程,例如 KeInitializeTimer 或 KeInitializeTimerEx 来初始化此结构。
计时器可以设置为仅过期一次,或在给定间隔后重复过期。 KeSetTimer 始终设置一个计时器,该计时器将仅过期一次。 KeSetTimerEx 接受可选的 Period 参数,该参数指定定期计时器间隔。
可选的 CustomTimerDpc 例程(延迟过程调用的类型)可与通知计时器或同步计时器相关联。 此例程在指定的时间间隔过期时执行。 有关详细信息,请参阅 使用计时器对象。
计时器可以是 通知计时器 或 同步计时器。
当通知计时器发出信号时,所有等待线程都满足其等待。 计时器的状态将维持在信号状态,直到它被显式重置。
当同步计时器到期时,其状态将被设置为“已通知”,直到释放一个等待线程。 然后,计时器将重置为 Not-Signaled 状态。
KeInitializeTimer 始终创建通知计时器。 KeInitializeTimerEx 接受 类型 参数,可以是 NotificationTimer 或 SynchronizationTimer。
以下主题提供有关计时器对象和 DPC 的详细信息: