Fungsi panggilan balik WMIDPREQUEST (evntrace.h)
Penyedia peristiwa berbasis RegisterTraceGuids ("Klasik") mengimplementasikan fungsi ini untuk menerima permintaan aktifkan atau nonaktifkan pemberitahuan dari pengontrol.
Jenis WMIDPREQUEST mendefinisikan penunjuk ke fungsi panggilan balik ini. ControlCallback adalah tempat penampung untuk nama fungsi yang ditentukan aplikasi.
Sintaks
WMIDPREQUEST Wmidprequest;
ULONG Wmidprequest(
[in] WMIDPREQUESTCODE RequestCode,
PVOID RequestContext,
ULONG *BufferSize,
[in] PVOID Buffer
)
{...}
Parameter
[in] RequestCode
Kode permintaan. Ini akan menjadi salah satu nilai berikut.
Nilai | Makna |
---|---|
WMI_ENABLE_EVENTS | Mengaktifkan penyedia atau mengubah konfigurasi penyedia. |
WMI_DISABLE_EVENTS | Menonaktifkan penyedia. |
RequestContext
Konteks yang ditentukan penyedia. Penyedia menggunakan parameter RequestContext dari
RegisterTraceGuids untuk menentukan konteks.
BufferSize
Dicadangkan untuk penggunaan internal.
[in] Buffer
Penunjuk ke struktur WNODE_HEADER yang berisi informasi tentang sesi pelacakan peristiwa tempat penyedia diaktifkan atau dinonaktifkan.
Mengembalikan nilai
Anda harus mengembalikan ERROR_SUCCESS jika panggilan balik berhasil. Perhatikan bahwa ETW mengabaikan nilai pengembalian untuk fungsi ini kecuali ketika pengontrol memanggil EnableTrace untuk mengaktifkan penyedia dan penyedia belum memanggil RegisterTraceGuids. Ketika ini terjadi, RegisterTraceGuids akan mengembalikan nilai pengembalian panggilan balik ini jika pendaftaran berhasil.
Keterangan
Fungsi ini ditentukan menggunakan fungsi RegisterTraceGuids . Saat pengontrol memanggil fungsi EnableTrace untuk mengaktifkan, menonaktifkan, atau mengubah bendera atau tingkat aktifkan, ETW memanggil panggilan balik ini. Penyedia mengaktifkan atau menonaktifkan dirinya sendiri berdasarkan nilai RequestCode . Biasanya, penyedia menggunakan nilai ini untuk mengatur bendera global untuk menunjukkan statusnya yang diaktifkan.
Penyedia mendefinisikan interpretasinya untuk diaktifkan atau dinonaktifkan. Umumnya, jika penyedia diaktifkan, ia menghasilkan peristiwa, tetapi saat dinonaktifkan, itu tidak.
ETW tidak meneruskan bendera aktifkan dan mengaktifkan tingkat yang diteruskan pengontrol ke fungsi EnableTrace ke panggilan balik ini. Untuk mengambil informasi ini, panggil fungsi GetTraceEnableFlags dan GetTraceEnableLevel masing-masing.
Anda juga perlu mengambil handel sesi dalam panggilan balik ini untuk panggilan mendatang. Untuk mengambil handel sesi, panggil fungsi GetTraceLoggerHandle .
Fungsi panggilan balik Anda tidak boleh memanggil apa pun yang mungkin menimbulkan LoadLibrary (lebih khusus lagi, apa pun yang memerlukan kunci pemuat).
Contoh
Untuk contoh implementasi fungsi ControlCallback , lihat Menulis Peristiwa Klasik.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 2000 Professional [aplikasi desktop | Aplikasi UWP] |
Server minimum yang didukung | Windows 2000 Server [aplikasi desktop | Aplikasi UWP] |
Target Platform | Windows |
Header | evntrace.h |