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 vers un objet minuteur fourni par NDIS lorsqu’un pilote appelle le NdisAllocateTimerObject , fonction.

Valeur de retour

NdisCancelTimerObject retourne TRUE si l’objet minuteur spécifié se trouve dans la file d’attente du minuteur système ; sinon, elle retourne FALSE.

Remarques

Un appel à NdisCancelTimerObject annule l’exécution d’une fonction NetTimerCallback , à condition que le dernier intervalle de délai spécifié n’ait pas encore expiré.

Les pilotes NDIS doivent d’abord appeler NdisCancelTimerObject lorsqu’ils arrêtent ou déchargent pour s’assurer qu’une fonction NetTimerCallback ne tente pas d’accéder aux ressources que le pilote a déjà publiées.

Si une valeur non nulle 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 à un coup. 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 obligé d’avoir un mécanisme de synchronisation distinct pour s’assurer que le minuteur n’est pas actuellement exécuté 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

   
Client minimal pris en charge Pris en charge dans NDIS 6.0 et versions ultérieures.
Plateforme cible Universal
En-tête ndis.h (include 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