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) |