Bagikan melalui


Fungsi EvtCancel (winevt.h)

Membatalkan semua operasi yang tertunda pada handel.

Sintaks

BOOL EvtCancel(
  EVT_HANDLE Object
);

Parameter

Object

Handel yang operasinya ingin Anda batalkan. Anda dapat membatalkan operasi berikut:

Untuk membatalkan operasi EvtClearLog, EvtExportLog, EvtQuery, dan EvtSubscribe , Anda harus melewati handel sesi. Untuk menentukan sesi default (sesi lokal), atur parameter ini ke NULL.

Mengembalikan nilai

Mengembalikan kode/nilai Deskripsi
TRUE
Fungsi berhasil.
FALSE
Fungsi gagal. Untuk mendapatkan kode kesalahan, panggil fungsi GetLastError .

Keterangan

Gunakan fungsi ini untuk membatalkan operasi yang berjalan lama. Misalnya, memanggil fungsi EvtNext secara teoritis dapat memakan waktu lama karena pemfilteran ribuan rekaman peristiwa. Memanggil EvtCancel akan menghentikan fungsi EvtNext memproses rekaman peristiwa lebih lanjut. Perhatikan bahwa fungsi mungkin tidak dapat segera menghentikan operasi.

Anda harus memanggil fungsi EvtClose untuk menutup handel setelah selesai.

Prosedur berikut menjelaskan cara membatalkan operasi yang berjalan lama.

Untuk membatalkan operasi jangka panjang

  1. Utas A memanggil operasi yang berjalan lama (misalnya, fungsi EvtSeek ).
  2. Utas B ingin membatalkan dan menutup semua operasi, jadi utas B memanggil fungsi EvtCancel .
  3. Utas B kemudian menunggu semua panggilan yang tertunda selesai (dengan menyinkronkan dengan utas A). Karena fungsi EvtCancel dipanggil, utas A harus selesai segera setelah panggilan ke EvtCancel dibuat.
  4. Setelah utas A sepenuhnya menyelesaikan operasi (EvtSeek), utas B dapat menutup handel hasil kueri menggunakan fungsi EvtClose .
Operasi yang dihentikan akan kembali dengan kode kesalahan ERROR_CANCELLED.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Vista [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2008 [hanya aplikasi desktop]
Target Platform Windows
Header winevt.h
Pustaka Wevtapi.lib
DLL Wevtapi.dll