KeXxxTimer例程, KTIMER对象, 和DPC

本文介绍自Windows 2000起可用的一系列KeXxxTimer例程,包括KTIMER对象的创建与初始化方法,以及如何设置一次性或周期性定时器。还介绍了与定时器相关联的CustomTimerDpc例程,并区分了通知定时器与同步定时器的不同行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值