一、初始化 NDIS 定时器
任何NDIS驱动程序都可以有多个定时器,可以是一次性或周期性的。NDIS_TIMER_CHARACTERISTICS
结构定义了定时器的若干属性,其中一项是NetTimerCallback
函数入口。当定时器到期时,NDIS调用NetTimerCallback
函数执行定时任务。
- 初始化定时器:调用
NdisAllocateTimerObject
函数,传入自己定义的NDIS_TIMER_CHARACTERISTICS
结构 - 启动定时器:调用
NdisSetTimerObject
函数 - 释放定时器:调用
NdisFreeTimerObject
函数
其中,NdisAllocateTimerObject
函数原型为:
NDIS_STATUS NdisAllocateTimerObject(
_In_ NDIS_HANDLE NdisHandle,
_In_ PNDIS_TIMER_CHARACTERISTICS TimerCharacteristics,
_Out_ PNDIS_HANDLE pTimerObject
);
二、启动和清除定时器
利用NdisSetTimerObject
函数可令驱动程序在指定的时间间隔或定期之后触发定时任务函数,其函数原型为: