NdisSetTimerObject 函数 (ndis.h)
NdisSetTimerObject 函数将计时器对象设置为在指定间隔后触发或定期触发。
语法
BOOLEAN NdisSetTimerObject(
[in] NDIS_HANDLE TimerObject,
[in] LARGE_INTEGER DueTime,
[in, optional] LONG MillisecondsPeriod,
[in, optional] PVOID FunctionContext
);
参数
[in] TimerObject
NDIS 在驱动程序调用 时提供的计时器对象的句柄 NdisAllocateTimerObject 函数。
[in] DueTime
计时器到期的绝对时间或相对时间。 如果 DueTime 参数的值为负值,则过期时间相对于当前系统时间。 否则,过期时间是绝对的。 过期时间以系统时间单位表示 (100 纳秒间隔) 。 绝对过期时间跟踪系统时间中的任何更改;相对过期时间不受系统时间更改的影响。
[in, optional] MillisecondsPeriod
计时器每次触发和下次调用 NetTimerCallback 函数之间经过的周期时间间隔(以毫秒为单位),除非取消计时器。 此参数的值必须小于或等于 MAXLONG。
[in, optional] FunctionContext
指向调用方提供的上下文区域的指针,当计时器触发时,NDIS 会传递给关联的 NetTimerCallback 函数。 如果此参数为 NULL,则 NDIS 使用在 中指定的默认值 NDIS_TIMER_CHARACTERISTICS 结构。
返回值
如果计时器对象已在系统计时器队列中,则 NdisSetTimerObject 返回 TRUE;否则返回 FALSE。
注解
驱动程序调用 NdisSetTimerObject 后,计时器对象将排队,直到 DueTime 参数中指定的间隔过期。 间隔到期后,计时器对象将取消排队,调用方提供的 NetTimerCallback 函数在处理器可用后立即在 IRQL = DISPATCH_LEVEL 运行一次。
如果在 MillisecondsPeriod 参数中指定了非零值,计时器对象将再次排队,直到 MillisecondsPeriod 中指定的间隔过期。 此间隔到期后,计时器对象将重新排队,调用方提供的 NetTimerCallback 函数在处理器可用后立即在 IRQL = DISPATCH_LEVEL 运行一次。
若要取消计时器,请调用 NdisCancelTimerObject 函数。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 在 NDIS 6.0 及更高版本中受支持。 |
目标平台 | 通用 |
标头 | ndis.h (包括 Ndis.h) |
Library | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
DDI 符合性规则 | Irql_Timer_Function (ndis) 、 PeriodicTimer (ndis) |