Partager via


KeCancelTimer, fonction (wdm.h)

Le KeCancelTimer routine de file d’attente un objet minuteur avant l’intervalle du minuteur, le cas échéant, expire.

Syntaxe

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

Paramètres

[in, out] unnamedParam1

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

Valeur de retour

Si l’objet 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é. Sinon, 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 spécifié est supprimé de la file d’attente système dès qu’il expire. Par conséquent, pour les minuteurs non spécifiés, KeCancelTimer retourne FALSE si le minuteur DPC a été mis en file d’attente. Les minuteurs périodiques sont toujours dans la file d’attente du minuteur. Par conséquent, KeCancelTimer retourne toujours TRUE pour les minuteurs périodiques.

Notez qu’un DPC en cours d’exécution s’exécute jusqu’à la fin. Le pilote doit s’assurer que le DPC est terminé avant de libérer les ressources utilisées par le DPC. Pour un minuteur nonperiodicique, vous pouvez utiliser des primitives de synchronisation, telles que des objets d’événement, pour synchroniser entre le pilote et la DPC. Le pilote peut vérifier le code de retour de KeCancelTimer pour déterminer si le DPC est en cours d’exécution. Si c’est le 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 autre technique pour attendre que le DPC soit terminé. Utilisez les KeFlushQueuedDpcs routine pour bloquer jusqu’à ce que le DPC s’exécute.

Les pilotes n’ont pas besoin de synchroniser 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 de ces régions.

Pour plus d’informations sur les objets du minuteur, consultez objets de minuteur et les contrôleurs de domaine.

Exigences

Exigence Valeur
client minimum pris en charge Disponible à partir de Windows 2000.
plateforme cible Universel
d’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