Partager via


KeCancelTimer, fonction (wdm.h)

La routine KeCancelTimer met en file d’attente un objet de minuteur avant l’expiration de l’intervalle du minuteur, le cas échéant.

Syntaxe

BOOLEAN KeCancelTimer(
  [in, out] PKTIMER unnamedParam1
);

Paramètres

[in, out] unnamedParam1

Pointeur vers un objet de minuteur initialisé, pour lequel l’appelant fournit le stockage.

Valeur retournée

Si l’objet de minuteur spécifié se trouve dans la file d’attente du minuteur système, KeCancelTimer retourne TRUE.

Remarques

Si l’objet minuteur se trouve actuellement dans la file d’attente du minuteur système, il est supprimé de la file d’attente. Si un objet DPC est associé au minuteur, il est également annulé. Dans le cas contraire, aucune opération n'est effectuée.

La routine retourne TRUE si le minuteur est toujours dans la file d’attente du minuteur. Un minuteur non ponctuel est supprimé de la file d’attente système dès qu’il expire. Ainsi, pour les minuteurs nonpédiques, KeCancelTimer retourne FALSE si le DPC du minuteur a été mis en file d’attente. Les minuteurs périodiques étant toujours dans la file d’attente du minuteur, KeCancelTimer retourne toujours TRUE pour les minuteurs périodiques.

Notez qu’un DPC qui est déjà en cours d’exécution s’exécute jusqu’à la fin. Le pilote doit s’assurer que la DPC est terminée avant de libérer les ressources utilisées par le DPC. Pour un minuteur non ponctuel, vous pouvez utiliser des primitives de synchronisation, telles que des objets d’événement, pour synchroniser entre le pilote et le DPC. Le pilote peut case activée le code de retour de KeCancelTimer pour déterminer si le DPC est en cours d’exécution. Dans ce cas, le DPC peut signaler l’événement avant de quitter, et le pilote peut attendre que cet événement soit réinitialisé à l’état non signalé.

Étant donné que pour les minuteurs périodiques KeCancelTimer retourne toujours TRUE, les pilotes doivent utiliser une technique différente pour attendre que la DPC soit terminée. Utilisez la routine KeFlushQueuedDpcs pour bloquer jusqu’à ce que la DPC s’exécute.

Les pilotes n’ont pas besoin de se synchroniser pour les données stockées dans des variables globales ou des extensions d’objet de pilote. Le système appelle automatiquement KeFlushQueuedDpcs avant de déallouer l’une ou l’autre de ces régions.

Pour plus d’informations sur les objets du minuteur, consultez Objets de minuteur et DPC.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible à partir de Windows 2000.
Plateforme cible Universal
En-tête wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL
Règles de conformité DDI HwStorPortProhibitedDDIs(storport), IrqlKeDispatchLte(wdm)

Voir aussi

KeInitializeTimer

KeReadStateTimer

KeSetTimer