KeXxxTimer例程, KTIMER对象, 和DPC

来源:互联网 发布:淘宝新锐卖家审核标准 编辑:程序博客网 时间:2024/05/29 18:03

KeXxxTimer例程, KTIMER对象DPC

Windows 2000开始一系列KeXxxTimer 例程可用于管理计时器。这些例程使用基于KTIMER结构的定时器对象。

为了创建一个计时器对象,一个驱动程序首先申请一个KTIMER结构体的存储空间。然后驱动程序调用例如KeInitializeTimerKeInitializeTimerEx的一个例程去初始化这个结构。一个定时器可仅用于计时一次,亦可在给定的时间间隔后重复计时。KeSetTimer总是设置一个仅计时一次的定时器,KeSetTimerEx接受一个可选的超时参数,它指定一个重复发生超时的定时器间隔。

一个可选的CustomTimerDpc例程(延迟过程调用的类型之一)可以与一个通知定时器或者一个同步定时器相关联,当指定的时间超时后这个例程被调用。更多相关信息见Using Timer Objects

一个定时器可以是一个通知定时器或者是一个同步定时器。

· 

当一个通知定时器被设置为信号态时,所有在它之上等待的线程被触发。定时器的状态保持为信号态,直到它被显式重置。

· 

· 

当一个同步定时器超时,它的状态被设置为信号态直到一个等待线程被释放。此时定时器(自动)被重置为非信号态。

· 

KeInitializeTimer 总是创建一个通知定时器。 KeInitializeTimerEx 接受一个Type参数它可以被设定为NotificationTimer或者SynchronizationTimer

以下主题提供更多有关定时器对象和DPC的信息:

Using Timer Objects

Timer Accuracy

Registering and Queuing a CustomTimerDpc Routine

Providing CustomTimerDpc Context Information

Using a CustomTimerDpc Routine

0 0