Minuteurs de maintenance

NDIS appelle la fonction NetTimerCallback lorsqu’un minuteur NDIS 6.0 se déclenche. Le paramètre FunctionContext de cette fonction contient un pointeur vers une zone de contexte fournie par le pilote. La valeur par défaut pour FunctionContext est spécifiée dans une structure NDIS_TIMER_CHARACTERISTICS . Le pilote a passé la structure à la fonction NdisAllocateTimerObject pour allouer et initialiser l’objet minuteur associé.

Si le pilote a spécifié une valeur non NULL dans le paramètre FunctionContext passé à la fonction NdisSetTimerObject , NDIS transmet cette valeur au paramètre FunctionContext de la fonction NetTimerCallback . Sinon, NDIS transmet la valeur par défaut spécifiée dans la structure NDIS_TIMER_CHARACTERISTICS.

N’importe quel pilote NDIS peut avoir plusieurs fonctions NetTimerCallback . Chaque fonction NetTimerCallback doit être associée à un autre objet de minuteur initialisé et alloué au pilote.

Un appel à la fonction NdisSetTimerObject entraîne l’exécution périodique ou régulière de la fonction NetTimerCallback associée à l’objet du minuteur.

Pour arrêter les appels à une fonction NetTimerCallback , appelez la fonction NdisCancelTimerObject . NDIS peut toujours appeler NetTimerCallback si le délai d’expiration a déjà expiré avant l’appel à NdisCancelTimerObject.

Si une fonction NetTimerCallback partage des ressources avec d’autres fonctions de pilote, le pilote doit synchroniser l’accès à ces ressources avec un verrou de rotation.