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