Partager via


EvtCancel, fonction (winevt.h)

Annule toutes les opérations en attente sur un handle.

Syntaxe

BOOL EvtCancel(
  EVT_HANDLE Object
);

Paramètres

Object

Handle dont vous souhaitez annuler l’opération. Vous pouvez annuler les opérations suivantes :

Pour annuler les opérations EvtClearLog, EvtExportLog, EvtQuery et EvtSubscribe , vous devez passer le handle de session. Pour spécifier la session par défaut (session locale), définissez ce paramètre sur NULL.

Valeur retournée

Code/valeur de retour Description
TRUE
La fonction a réussi.
FALSE
Échec de la fonction. Pour obtenir le code d’erreur, appelez la fonction GetLastError .

Remarques

Utilisez cette fonction pour annuler des opérations de longue durée. Par exemple, l’appel de la fonction EvtNext peut théoriquement prendre beaucoup de temps en raison du filtrage de milliers d’enregistrements d’événements. L’appel d’EvtCancel empêcherait la fonction EvtNext de traiter d’autres enregistrements d’événements. Notez que la fonction peut ne pas être en mesure d’arrêter l’opération immédiatement.

Vous devez appeler la fonction EvtClose pour fermer le handle lorsque vous avez terminé.

La procédure suivante décrit comment annuler une opération de longue durée.

Pour annuler une opération de longue durée

  1. Le thread A appelle une opération de longue durée (par exemple, la fonction EvtSeek ).
  2. Le thread B souhaite annuler et fermer toutes les opérations, de sorte que le thread B appelle la fonction EvtCancel .
  3. Le thread B attend ensuite que tous les appels en attente se terminent (en synchronisant avec le thread A). Étant donné que la fonction EvtCancel a été appelée, le thread A doit se terminer peu après l’appel à l’EvtCancel .
  4. Une fois que le thread A a terminé l’opération (EvtSeek), le thread B peut fermer le handle de résultat de requête à l’aide de la fonction EvtClose .
L’opération en cours d’arrêt est retournée avec un code d’erreur de ERROR_CANCELLED.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau uniquement]
Plateforme cible Windows
En-tête winevt.h
Bibliothèque Wevtapi.lib
DLL Wevtapi.dll