Bagikan melalui


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

Lihat juga

EnableTrace

GetTraceEnableFlags

GetTraceEnableLevel

GetTraceLoggerHandle

RegisterTraceGuids

WNODE_HEADER