NdisCancelTimerObject, fonction (ndis.h)
La fonction NdisCancelTimerObject annule un objet minuteur associé à un appel précédent à la fonction NdisSetTimerObject .
Syntaxe
BOOLEAN NdisCancelTimerObject(
[in] NDIS_HANDLE TimerObject
);
Paramètres
[in] TimerObject
Handle à un objet minuteur fourni par NDIS lorsqu’un pilote appelle le Fonction NdisAllocateTimerObject .
Valeur retournée
NdisCancelTimerObject retourne TRUE si l’objet minuteur spécifié se trouve dans la file d’attente du minuteur système ; sinon, il retourne FALSE.
Remarques
Un appel à NdisCancelTimerObject annule l’exécution d’une fonction NetTimerCallback , à condition que le dernier délai d’expiration spécifié n’ait pas encore expiré.
Les pilotes NDIS doivent d’abord appeler NdisCancelTimerObject lorsqu’ils s’arrêtent ou se déchargent pour s’assurer qu’une fonction NetTimerCallback ne tente pas d’accéder aux ressources que le pilote a déjà libérées.
Si une valeur différente de zéro a été spécifiée dans le paramètre MillisecondsPeriod de la fonction NdisSetTimerObject , le minuteur est appelé minuteur périodique. Si une valeur zéro a été spécifiée dans le paramètre MillisecondsPeriod , le minuteur est appelé minuteur one-shot. Les points suivants s’appliquent à l’annulation des deux types de minuteurs :
- Si l’appelant de NdisCancelTimerObject annule un minuteur périodique, il doit s’exécuter à IRQL = PASSIVE_LEVEL. Sinon, l’appelant de NdisCancelTimerObject doit être en cours d’exécution à IRQL <= DISPATCH_LEVEL.
-
Si l’appelant de NdisCancelTimerObject annule un minuteur périodique, NdisCancelTimerObject appelle KeFlushQueuedDpcs pour s’assurer que le minuteur n’est pas en cours d’exécution. Par conséquent, l’appelant n’est pas tenu d’avoir un mécanisme de synchronisation distinct pour s’assurer que le minuteur n’est pas en cours d’exécution sur un autre processeur.
Si l’appelant de NdisCancelTimerObject annule un minuteur one-shot, l’appelant doit disposer d’un mécanisme de synchronisation distinct pour s’assurer que le minuteur n’est pas en cours d’exécution sur un autre processeur. Par exemple, l’appelant peut appeler NDIS_WAIT_FOR_MUTEX afin d’attendre que le thread du minuteur signale un objet mutex lorsque le thread est sur le point de se terminer.
Pour plus d’informations, consultez Synchronisation et notification dans les pilotes réseau.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Pris en charge dans NDIS 6.0 et versions ultérieures. |
Plateforme cible | Universal |
En-tête | ndis.h (inclure Ndis.h) |
Bibliothèque | Ndis.lib |
IRQL | Voir la section Remarques |
Règles de conformité DDI | Irql_Timer_Function(ndis),PeriodicTimer(ndis) |