Temporizadores de mantenimiento
NDIS llama a la función NetTimerCallback cuando se activa un temporizador NDIS 6.0. El parámetro FunctionContext de esta función contiene un puntero a un área de contexto proporcionada por el controlador. El valor predeterminado de FunctionContext se especifica en una estructura NDIS_TIMER_CHARACTERISTICS . El controlador pasó la estructura a la función NdisAllocateTimerObject para asignar e inicializar el objeto de temporizador asociado.
Si el controlador especificó un valor distinto de NULL en el parámetro FunctionContext que se pasa a la función NdisSetTimerObject , NDIS pasa ese valor al parámetro FunctionContext de la función NetTimerCallback . De lo contrario, NDIS pasa el valor predeterminado especificado en la estructura NDIS_TIMER_CHARACTERISTICS.
Cualquier controlador NDIS puede tener más de una función NetTimerCallback . Cada función NetTimerCallback de este tipo debe estar asociada a un objeto de temporizador asignado por el controlador y al que se haya inicializado.
Una llamada a la función NdisSetTimerObject hace que la función NetTimerCallback asociada al objeto de temporizador se ejecute después de un intervalo especificado o periódicamente.
Para detener las llamadas a una función NetTimerCallback , llame a la función NdisCancelTimerObject . NDIS podría seguir llamando a NetTimerCallback si el tiempo de espera ya ha expirado antes de la llamada a NdisCancelTimerObject.
Si una función NetTimerCallback comparte recursos con otras funciones de controlador, el controlador debe sincronizar el acceso a esos recursos con un bloqueo de número.