Funzione EvtCancel (winevt.h)
Annulla tutte le operazioni in sospeso su un handle.
Sintassi
BOOL EvtCancel(
EVT_HANDLE Object
);
Parametri
Object
Handle di cui si desidera annullare l'operazione. È possibile annullare le operazioni seguenti:
Per annullare le operazioni EvtClearLog, EvtExportLog, EvtQuery e EvtSubscribe , è necessario passare l'handle di sessione. Per specificare la sessione predefinita (sessione locale), impostare questo parametro su NULL.Valore restituito
Codice/valore restituito | Descrizione |
---|---|
|
Funzione completata. |
|
La funzione non è riuscita. Per ottenere il codice di errore, chiamare la funzione GetLastError . |
Commenti
Usare questa funzione per annullare le operazioni a esecuzione prolungata. Ad esempio, la chiamata alla funzione EvtNext potrebbe richiedere molto tempo a causa del filtro di migliaia di record di eventi. La chiamata di EvtCancel arresta la funzione EvtNext dall'elaborazione di ulteriori record di eventi. Si noti che la funzione potrebbe non essere in grado di arrestare immediatamente l'operazione.
Al termine, è necessario chiamare la funzione EvtClose per chiudere l'handle.
La procedura seguente descrive come annullare un'operazione a esecuzione prolungata.
Per annullare un'operazione a esecuzione prolungata
- Thread A chiama un'operazione a esecuzione prolungata, ad esempio la funzione EvtSeek .
- Il thread B vuole annullare e chiudere tutte le operazioni, quindi il thread B chiama la funzione EvtCancel .
- Il thread B attende quindi il completamento di tutte le chiamate in sospeso (eseguendo la sincronizzazione con il thread A). Poiché la funzione EvtCancel è stata chiamata, il thread A dovrebbe essere completato subito dopo che è stata effettuata la chiamata a EvtCancel .
- Dopo che il thread A ha completato completamente l'operazione (EvtSeek), il thread B può chiudere l'handle dei risultati della query usando la funzione EvtClose .
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Vista [solo app desktop] |
Server minimo supportato | Windows Server 2008 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | winevt.h |
Libreria | Wevtapi.lib |
DLL | Wevtapi.dll |