EVT_SUBSCRIBE_CALLBACK fungsi panggilan balik (winevt.h)
Terapkan panggilan balik ini jika Anda memanggil fungsi EvtSubscribe untuk menerima peristiwa yang cocok dengan kueri Anda. Layanan memanggil panggilan balik Anda saat peristiwa yang cocok dengan kriteria kueri Anda dinaikkan.
Sintaks
EVT_SUBSCRIBE_CALLBACK EvtSubscribeCallback;
DWORD EvtSubscribeCallback(
EVT_SUBSCRIBE_NOTIFY_ACTION Action,
PVOID UserContext,
EVT_HANDLE Event
)
{...}
Parameter
Action
Menentukan apakah parameter Peristiwa berisi peristiwa atau kode kesalahan. Untuk kemungkinan memberi tahu nilai tindakan, lihat enumerasi EVT_SUBSCRIBE_NOTIFY_ACTION .
UserContext
Konteks yang diteruskan pelanggan ke fungsi EvtSubscribe .
Event
Handel ke peristiwa. Penanganan aktivitas hanya berlaku selama durasi fungsi panggilan balik. Anda dapat menggunakan handel ini dengan fungsi log peristiwa apa pun yang mengambil handel peristiwa (misalnya, EvtRender atau EvtFormatMessage).
Jangan panggil EvtClose untuk menutup handel ini; layanan akan menutup handel ketika panggilan balik kembali.
Jika parameter Tindakan adalah EvtSubscribeActionError, transmisikan Peristiwa ke DWORD untuk mengakses kode kesalahan Win32.
Nilai kembali
Layanan mengabaikan kode pengembalian yang Anda kembalikan.
Keterangan
Panggilan balik ini akan memblokir peristiwa lain agar tidak dikirimkan ke panggilan balik Anda, jadi jaga implementasi Anda sesingkat mungkin.
Jika layanan mengalami kesalahan saat menyiapkan langganan, panggilan balik Anda tidak akan menerima pemberitahuan bahwa terjadi kesalahan.
Jika parameter BenderaEvtSubscribe menyertakan EvtSubscribeStrict, panggilan balik Anda akan menerima pemberitahuan saat rekaman peristiwa hilang. Dalam hal ini, nilai Peristiwa akan ERROR_EVT_QUERY_RESULT_STALE.
Untuk membatalkan langganan, Anda harus menutup handel langganan yang dikembalikan fungsi EvtSubscribe .
Contoh
Untuk contoh yang mengimplementasikan fungsi panggilan balik EVT_SUBSCRIBE_CALLBACK , lihat Berlangganan Peristiwa.
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 |