Bagikan melalui


PEVENT_CALLBACK fungsi panggilan balik (evntrace.h)

Konsumen peristiwa ETW menerapkan panggilan balik ini untuk menerima peristiwa dari sesi pemrosesan jejak. Panggilan balik ini tidak boleh digunakan dalam kode baru. Sebagai gantinya, terapkan EventRecordCallback.

Jenis PEVENT_CALLBACK adalah penunjuk ke fungsi panggilan balik ini. EventCallback adalah tempat penampung untuk nama fungsi yang ditentukan aplikasi.

Sintaks

PEVENT_CALLBACK PeventCallback;

void PeventCallback(
  [in] PEVENT_TRACE pEvent
)
{...}

Parameter

[in] pEvent

Arahkan ke struktur EVENT_TRACE yang berisi informasi peristiwa.

Nilai kembali

Tidak ada

Keterangan

Catatan

Panggilan balik ini usang karena menerima informasi yang tidak lengkap tentang peristiwa dan tidak kompatibel dengan API pembantu pendekodean peristiwa seperti TdhGetEventInformation. Alih-alih menerapkan EventCallback, terapkan EventRecordCallback.

Untuk menentukan fungsi yang dipanggil ETW untuk mengirimkan peristiwa, atur anggota EventCallback dari struktur EVENT_TRACE_LOGFILE yang Anda berikan ke fungsi OpenTrace .

Catatan

Jika fungsi EventCallback Anda menerima data yang rusak dari ProcessTrace, periksa kembali bendera yang ditentukan di ProcessTraceMode bidang EVENT_TRACE_LOGFILE struktur yang disediakan untuk OpenTrace. EVENT_TRACE_LOGFILEBidang EventCallback dan EventRecordCallback tumpang tindih dengan anggota serikat. ProcessTraceMode Jika bidang menyertakan PROCESS_TRACE_MODE_EVENT_RECORD bendera, ProcessTrace akan memanggil panggilan balik Anda menggunakan tanda tangan fungsi EventRecordCallback. Jika tidak, ProcessTrace akan memanggil panggilan balik Anda menggunakan tanda tangan fungsi EventCallback .

Setelah menggunakan OpenTrace untuk membuat sesi pemrosesan jejak, panggil fungsi ProcessTrace untuk mulai menerima peristiwa.

Ketika ProcessTrace mulai memproses peristiwa dari pelacakan, processTrace dapat memanggil panggilan balik Anda dengan satu atau beberapa peristiwa sintetis yang berisi data tentang jejak (metadata) daripada data dari peristiwa yang dicatat. Peristiwa sintetis ini memiliki Header.Guid yang diatur ke EventTraceGuid dan Header.Class.Type yang diatur berdasarkan konten peristiwa sintetis. Misalnya, peristiwa pertama dari setiap file pelacakan akan menjadi peristiwa sintetis dengan jenis 0 yang berisi informasi TRACE_LOGFILE_HEADER .

Semua peristiwa lain yang Anda terima berisi data peristiwa khusus penyedia. Anda menggunakan anggota Header.Guid dan Header.Class.Typedari EVENT_TRACE untuk menentukan jenis peristiwa yang Anda terima. Dimungkinkan untuk logika pendekodean kode keras untuk jenis peristiwa terkenal, tetapi sebagian besar peristiwa akan didekodekan menggunakan informasi skema MOF yang terdaftar pada sistem di \\root\wmi namespace layanan. Untuk informasi tentang menggunakan skema MOF peristiwa untuk menginterpretasikan peristiwa, lihat Mengonsumsi Peristiwa.

Contoh

Untuk contoh implementasi fungsi EventCallback , lihat Mengambil Data Peristiwa Menggunakan MOF.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Target Platform Windows
Header evntrace.h

Lihat juga

Mengonsumsi Peristiwa

BufferCallback

EventRecordCallback

EVENT_TRACE_LOGFILE

OpenTrace

ProcessTrace