EvtCancel-Funktion (winevt.h)
Bricht alle ausstehenden Vorgänge für ein Handle ab.
Syntax
BOOL EvtCancel(
EVT_HANDLE Object
);
Parameter
Object
Das Handle, dessen Vorgang Abgebrochen werden soll. Sie können die folgenden Vorgänge abbrechen:
Um die Vorgänge EvtClearLog, EvtExportLog, EvtQuery und EvtSubscribe abzubrechen, müssen Sie das Sitzungshandle übergeben. Legen Sie diesen Parameter auf NULL fest, um die Standardsitzung (lokale Sitzung) anzugeben.Rückgabewert
Rückgabecode/-wert | BESCHREIBUNG |
---|---|
|
Die Funktion wurde erfolgreich ausgeführt. |
|
Fehler bei der Funktion. Rufen Sie die GetLastError-Funktion auf, um den Fehlercode abzurufen. |
Hinweise
Verwenden Sie diese Funktion, um Vorgänge mit langer Ausführungszeit abzubrechen. Beispielsweise könnte der Aufruf der EvtNext-Funktion aufgrund der Filterung von Tausenden von Ereignisdatensätzen theoretisch lange dauern. Der Aufruf von EvtCancel würde verhindern, dass die EvtNext-Funktion weitere Ereignisdatensätze verarbeitet. Beachten Sie, dass die Funktion den Vorgang möglicherweise nicht sofort beenden kann.
Sie müssen die EvtClose-Funktion aufrufen, um das Handle zu schließen, wenn Sie fertig sind.
Im folgenden Verfahren wird beschrieben, wie ein Vorgang mit langer Ausführungszeit abgebrochen wird.
So brechen Sie einen lang andauernden Vorgang ab
- Thread A ruft einen Vorgang mit langer Ausführungsdauer auf (z. B. die EvtSeek-Funktion ).
- Thread B möchte alle Vorgänge abbrechen und schließen, sodass Thread B die EvtCancel-Funktion aufruft .
- Thread B wartet dann, bis alle ausstehenden Aufrufe abgeschlossen sind (durch Synchronisierung mit Thread A). Da die EvtCancel-Funktion aufgerufen wurde, sollte Thread A kurz nach dem Aufruf von EvtCancel abgeschlossen werden.
- Nachdem Thread A den Vorgang (EvtSeek) vollständig abgeschlossen hat, kann Thread B das Abfrageergebnishandle mithilfe der EvtClose-Funktion schließen.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows Vista [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2008 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | winevt.h |
Bibliothek | Wevtapi.lib |
DLL | Wevtapi.dll |