Freigeben über


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
TRUE
Die Funktion wurde erfolgreich ausgeführt.
FALSE
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

  1. Thread A ruft einen Vorgang mit langer Ausführungsdauer auf (z. B. die EvtSeek-Funktion ).
  2. Thread B möchte alle Vorgänge abbrechen und schließen, sodass Thread B die EvtCancel-Funktion aufruft .
  3. 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.
  4. Nachdem Thread A den Vorgang (EvtSeek) vollständig abgeschlossen hat, kann Thread B das Abfrageergebnishandle mithilfe der EvtClose-Funktion schließen.
Der beendete Vorgang wird mit dem Fehlercode ERROR_CANCELLED zurückgegeben.

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