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