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

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 appeler NdisCancelTimerObject tout d’abord 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 différente de zéro a été spécifiée dans le paramètre MillisecondsPeriod de la fonction NdisSetTimerObject, le minuteur est appelé minuteur minuteur périodique. Si une valeur zéro a été spécifiée dans le paramètre MillisecondsPeriod, le minuteur est appelé minuteur 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 s’exécuter au
  • 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 à un seul coup, 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.

Exigences

Exigence Valeur
client minimum pris en charge Prise en charge dans NDIS 6.0 et versions ultérieures.
plateforme cible Universel
d’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