Partager via


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)

Voir aussi

NdisAllocateTimerObject

NdisSetTimerObject

NetTimerCallback