Função EvtCancel (winevt.h)
Cancela todas as operações pendentes em um identificador.
Sintaxe
BOOL EvtCancel(
EVT_HANDLE Object
);
Parâmetros
Object
O identificador cuja operação você deseja cancelar. Você pode cancelar as seguintes operações:
Para cancelar as operações EvtClearLog, EvtExportLog, EvtQuery e EvtSubscribe , você deve passar o identificador da sessão. Para especificar a sessão padrão (sessão local), defina esse parâmetro como NULL.Retornar valor
Valor/código retornado | Descrição |
---|---|
|
A função foi bem-sucedida. |
|
Falha na função. Para obter o código de erro, chame a função GetLastError . |
Comentários
Use essa função para cancelar operações de execução prolongada. Por exemplo, chamar a função EvtNext pode teoricamente levar muito tempo devido à filtragem de milhares de registros de eventos. Chamar EvtCancel impediria a função EvtNext de processar mais registros de eventos. Observe que a função pode não ser capaz de interromper a operação imediatamente.
Você deve chamar a função EvtClose para fechar o identificador quando terminar.
O procedimento a seguir descreve como cancelar uma operação de execução prolongada.
Para cancelar uma operação de execução prolongada
- O Thread A chama uma operação de execução longa (por exemplo, a função EvtSeek ).
- O Thread B deseja cancelar e fechar todas as operações, portanto, o thread B chama a função EvtCancel .
- Em seguida, o Thread B aguarda a conclusão de todas as chamadas pendentes (sincronizando com o thread A). Como a função EvtCancel foi chamada, o thread A deve ser concluído logo após a chamada para o EvtCancel ser feita.
- Depois que o thread A tiver concluído totalmente a operação (EvtSeek), o thread B poderá fechar o identificador de resultado da consulta usando a função EvtClose .
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2008 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | winevt.h |
Biblioteca | Wevtapi.lib |
DLL | Wevtapi.dll |