Compartir a través de


Función EvtCancel (winevt.h)

Cancela todas las operaciones pendientes en un identificador.

Sintaxis

BOOL EvtCancel(
  EVT_HANDLE Object
);

Parámetros

Object

Identificador cuya operación desea cancelar. Puede cancelar las siguientes operaciones:

Para cancelar las operaciones EvtClearLog, EvtExportLog, EvtQuery y EvtSubscribe, debe pasar el identificador de sesión. Para especificar la sesión predeterminada (sesión local), establezca este parámetro en NULL.

Valor devuelto

Código o valor devuelto Descripción
TRUE
La función se ha realizado correctamente.
FALSE
Error en la función. Para obtener el código de error, llame a la función GetLastError .

Comentarios

Use esta función para cancelar las operaciones de larga duración. Por ejemplo, llamar a la función EvtNext podría tardar teóricamente mucho tiempo debido al filtrado de miles de registros de eventos. Llamar a EvtCancel impediría que la función EvtNext procesara más registros de eventos. Tenga en cuenta que es posible que la función no pueda detener la operación inmediatamente.

Debe llamar a la función EvtClose para cerrar el identificador cuando haya terminado.

En el procedimiento siguiente se describe cómo cancelar una operación de larga duración.

Para cancelar una operación de larga duración

  1. El subproceso A llama a una operación de larga duración (por ejemplo, la función EvtSeek ).
  2. El subproceso B quiere cancelar y cerrar todas las operaciones, por lo que el subproceso B llama a la función EvtCancel .
  3. A continuación, el subproceso B espera a que se completen todas las llamadas pendientes (sincronizando con el subproceso A). Dado que se llamó a la función EvtCancel , el subproceso A debería completarse poco después de realizar la llamada a EvtCancel .
  4. Una vez que el subproceso A ha completado completamente la operación (EvtSeek), el subproceso B puede cerrar el identificador de resultados de la consulta mediante la función EvtClose .
La operación que se detiene devolverá con un código de error de ERROR_CANCELLED.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado winevt.h
Library Wevtapi.lib
Archivo DLL Wevtapi.dll