服务计时器

NDIS 在 NDIS 6.0 计时器触发时调用 NetTimerCallback 函数。 此函数的 FunctionContext 参数包含指向驱动程序提供的上下文区域的指针。 FunctionContext 的默认值在NDIS_TIMER_CHARACTERISTICS结构中指定。 驱动程序将结构传递给 NdisAllocateTimerObject 函数,以分配和初始化关联的计时器对象。

如果驱动程序在传递给 NdisSetTimerObject 函数的 FunctionContext 参数中指定了非 NULL 值,则 NDIS 会将该值传递给 NetTimerCallback 函数的 FunctionContext 参数。 否则,NDIS 会传递NDIS_TIMER_CHARACTERISTICS结构中指定的默认值。

任何 NDIS 驱动程序都可以具有多个 NetTimerCallback 函数。 每个此类 NetTimerCallback 函数都必须与不同的驱动程序分配和初始化的计时器对象相关联。

调用 NdisSetTimerObject 函数会导致与计时器对象关联的 NetTimerCallback 函数在指定的间隔后运行或定期运行。

若要停止对 NetTimerCallback 函数的调用,请调用 NdisCancelTimerObject 函数。 如果在调用 NdisCancelTimerObject 之前超时已过期,则 NDIS 仍可能调用 NetTimerCallback

如果 NetTimerCallback 函数与其他驱动程序函数共享资源,则驱动程序应使用旋转锁来同步对这些资源的访问。