Fungsi EtwWriteEx (wdm.h)
Fungsi EtwWriteEx adalah fungsi pelacakan untuk menerbitkan peristiwa yang mendukung pemfilteran dalam kode driver mode kernel Anda.
Sintaks
NTSTATUS EtwWriteEx(
[in] REGHANDLE RegHandle,
[in] PCEVENT_DESCRIPTOR EventDescriptor,
[in] ULONG64 Filter,
[in] ULONG Flags,
[in, optional] LPCGUID ActivityId,
[in, optional] LPCGUID RelatedActivityId,
[in] ULONG UserDataCount,
[in, optional] PEVENT_DATA_DESCRIPTOR UserData
);
Parameter
[in] RegHandle
Penunjuk ke handel pendaftaran penyedia peristiwa, yang dikembalikan oleh fungsi EtwRegister jika pendaftaran penyedia peristiwa berhasil.
[in] EventDescriptor
Penunjuk ke struktur EVENT_DESCRIPTOR .
[in] Filter
Pengidentifikasi instans yang mengidentifikasi sesi tempat peristiwa tidak akan ditulis. Artinya, nilainya adalah masker sesi yang harus dikecualikan dari pengelogan (difilter). Gunakan bitwise OR untuk menentukan beberapa pengidentifikasi. Atur ke nol jika Anda tidak mendukung filter atau jika peristiwa sedang ditulis ke semua sesi (tidak ada filter yang gagal). Untuk informasi tentang mendapatkan pengidentifikasi untuk sesi, lihat parameter FilterData dari panggilan balik EtwEnableCallback Anda.
[in] Flags
Dicadangkan. Harus nol (0).
[in, optional] ActivityId
Pengidentifikasi yang menunjukkan aktivitas yang terkait dengan peristiwa. ActivityID menyediakan cara untuk mengelompokkan peristiwa terkait dan digunakan dalam pelacakan end-to-end. Jika NULL, ETW mendapatkan pengidentifikasi dari penyimpanan lokal utas. Untuk detail tentang mendapatkan pengidentifikasi ini, lihat EtwActivityIdControl.
[in, optional] RelatedActivityId
Pengidentifikasi aktivitas dari komponen sebelumnya. Gunakan parameter ini untuk menautkan peristiwa komponen Anda ke peristiwa komponen sebelumnya. Untuk mendapatkan pengidentifikasi aktivitas yang ditetapkan untuk komponen sebelumnya, lihat deskripsi untuk parameter ControlCode dari fungsi EtwActivityIdControl .
[in] UserDataCount
Jumlah struktur EVENT_DATA_DESCRIPTOR di UserData. Jumlah maksimum adalah 128.
[in, optional] UserData
Penunjuk ke array struktur EVENT_DATA_DESCRIPTOR. Atur parameter ini ke NULL jika UserDataCount adalah nol. Data harus dalam urutan yang ditentukan dalam manifes.
Mengembalikan nilai
Mengembalikan ERROR_SUCCESS jika berhasil atau salah satu nilai berikut pada kesalahan.
Keterangan
Fungsi EtwWriteEx setara dengan fungsi EventWriteEx mode pengguna. Data peristiwa yang ditulis dengan fungsi ini memerlukan manifes. Manifes disematkan di penyedia, sehingga penyedia harus tersedia bagi konsumen untuk menggunakan data. Untuk memastikan bahwa ada konsumen untuk peristiwa yang Anda terbitkan, Anda dapat mendahului panggilan ke EtwWrite dengan panggilan ke EtwEventEnabled atau EtwProviderEnabled.
Gunakan parameter ActivityId dan RelatedActivityId saat Anda ingin menghubungkan peristiwa dalam komponen yang berbeda dalam skenario pelacakan end-to-end. Misalnya, komponen A, B, dan C melakukan pekerjaan pada aktivitas terkait dan ingin menautkan peristiwa mereka sehingga konsumen dapat mengonsumsi semua peristiwa yang terkait dengan aktivitas tersebut.
Anda dapat memanggil EtwWriteEx di IRQL apa pun. Namun, ketika IRQL lebih besar dari APC_LEVEL, data apa pun yang diteruskan ke fungsi EtwWrite, EtwWriteEx, EtwWriteString, EtwWriteTransfer tidak boleh dapat dipaginasi. Artinya, rutinitas mode kernel apa pun yang berjalan di IRQL yang lebih besar dari APC_LEVEL tidak dapat mengakses memori yang dapat dipaginasi. Data yang diteruskan ke fungsi EtwWrite, EtwWriteEx, EtwWriteString, dan EtwWriteTransfer harus berada di memori ruang sistem, terlepas dari apa itu IRQL.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 7 |
Server minimum yang didukung | Windows Server 2008 R2 |
Target Platform | Universal |
Header | wdm.h |
Pustaka | NtosKrnl.lib |
DLL | NtosKrnl.exe |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk