struktur EVENT_INSTANCE_HEADER (evntrace.h)
Struktur EVENT_INSTANCE_HEADER berisi informasi pelacakan peristiwa standar yang umum untuk semua peristiwa yang ditulis oleh TraceEventInstance. Struktur ini juga berisi handel pendaftaran untuk kelas pelacakan peristiwa dan peristiwa induk terkait, yang Anda gunakan untuk melacak instans transaksi atau hubungan hierarkis antara peristiwa terkait.
Sintaks
typedef struct _EVENT_INSTANCE_HEADER {
USHORT Size;
union {
USHORT FieldTypeFlags;
struct {
UCHAR HeaderType;
UCHAR MarkerFlags;
} DUMMYSTRUCTNAME;
} DUMMYUNIONNAME;
union {
ULONG Version;
struct {
UCHAR Type;
UCHAR Level;
USHORT Version;
} Class;
} DUMMYUNIONNAME2;
ULONG ThreadId;
ULONG ProcessId;
LARGE_INTEGER TimeStamp;
ULONGLONG RegHandle;
ULONG InstanceId;
ULONG ParentInstanceId;
union {
struct {
ULONG KernelTime;
ULONG UserTime;
} DUMMYSTRUCTNAME;
ULONG64 ProcessorTime;
struct {
ULONG EventId;
ULONG Flags;
} DUMMYSTRUCTNAME2;
} DUMMYUNIONNAME3;
ULONGLONG ParentRegHandle;
} EVENT_INSTANCE_HEADER, *PEVENT_INSTANCE_HEADER;
Anggota
Size
Jumlah total byte peristiwa. Ukuran harus mencakup ukuran struktur EVENT_INSTANCE_HEADER , ditambah ukuran data khusus peristiwa apa pun yang ditambahkan ke struktur ini. Ukurannya harus kurang dari ukuran buffer sesi pelacakan peristiwa dikurangi 72 (0x48).
DUMMYUNIONNAME
Persatuan berbagai struktur dan anggota.
DUMMYUNIONNAME.FieldTypeFlags
Dicadangkan.
DUMMYUNIONNAME.DUMMYSTRUCTNAME
Dicadangkan.
DUMMYUNIONNAME.DUMMYSTRUCTNAME.HeaderType
Dicadangkan.
DUMMYUNIONNAME.DUMMYSTRUCTNAME.MarkerFlags
Dicadangkan.
DUMMYUNIONNAME2
Persatuan Kelas dalam dua bentuk.
DUMMYUNIONNAME2.Version
Ini adalah roll-up anggota Kelas. Byte urutan rendah berisi Jenis, byte berikutnya berisi Tingkat, dan dua byte terakhir berisi versi.
DUMMYUNIONNAME2.Class
Struktur Kelas.
DUMMYUNIONNAME2.Class.Type
Jenis peristiwa. Penyedia dapat menentukan jenis peristiwa mereka sendiri atau menggunakan jenis peristiwa yang telah ditentukan sebelumnya yang tercantum dalam tabel berikut.
EVENT_TRACE_TYPE_CHECKPOINT
Peristiwa titik pemeriksaan. Gunakan untuk peristiwa yang tidak berada di awal atau akhir aktivitas.
EVENT_TRACE_TYPE_DC_END
Peristiwa akhir pengumpulan data.
EVENT_TRACE_TYPE_DC_START
Peristiwa mulai pengumpulan data.
EVENT_TRACE_TYPE_DEQUEUE
Membatalkan antrean peristiwa. Gunakan saat aktivitas diantrekan sebelum dimulai. Gunakan EVENT_TRACE_TYPE_START untuk menandai waktu saat item kerja diantrekan. Gunakan jenis peristiwa penghapusan antrean untuk menandai waktu saat pekerjaan pada item benar-benar dimulai. Gunakan EVENT_TRACE_TYPE_END untuk menandai waktu saat pekerjaan pada item selesai.
EVENT_TRACE_TYPE_END
Akhiri peristiwa. Gunakan untuk melacak status akhir peristiwa multi-langkah.
EVENT_TRACE_TYPE_EXTENSION
Peristiwa ekstensi. Gunakan untuk peristiwa yang merupakan kelanjutan dari peristiwa sebelumnya. Misalnya, gunakan jenis peristiwa ekstensi saat jejak peristiwa merekam lebih banyak data daripada yang dapat dimuat dalam buffer sesi.
EVENT_TRACE_TYPE_INFO
Peristiwa informasi. Ini adalah jenis peristiwa default.
EVENT_TRACE_TYPE_REPLY
Peristiwa balasan. Gunakan saat aplikasi yang meminta sumber daya dapat menerima beberapa respons. Misalnya, jika aplikasi klien meminta URL, dan server web membalas dengan mengirim beberapa file, setiap file yang diterima dapat ditandai sebagai peristiwa balasan.
EVENT_TRACE_TYPE_START
Mulai acara. Gunakan untuk melacak status awal peristiwa multi-langkah.
Jika GUID kelas pelacakan peristiwa Anda mendukung beberapa jenis peristiwa, konsumen akan menggunakan jenis peristiwa untuk menentukan peristiwa dan cara menginterpretasikan kontennya.
DUMMYUNIONNAME2.Class.Level
Nilai yang ditentukan penyedia yang menentukan tingkat keparahan yang digunakan untuk menghasilkan peristiwa. Nilai berkisar antara 0 hingga 255. Pengontrol menentukan tingkat keparahan saat memanggil fungsi EnableTraceEx2 . Penyedia mengambil tingkat keparahan dengan memanggil fungsi GetTraceEnableLevel dari implementasi ControlCallback-nya . Penyedia menggunakan nilai untuk mengatur anggota ini.
ETW mendefinisikan tingkat keparahan berikut. Memilih tingkat yang lebih tinggi dari 1 juga akan mencakup peristiwa untuk tingkat yang lebih rendah. Misalnya, jika pengontrol menentukan TRACE_LEVEL_WARNING (3), penyedia juga menghasilkan peristiwa TRACE_LEVEL_FATAL (1) dan TRACE_LEVEL_ERROR (2).
Nilai | Makna |
---|---|
TRACE_LEVEL_CRITICAL (1) | Peristiwa keluar atau penghentian abnormal |
TRACE_LEVEL_ERROR (2) | Peristiwa kesalahan parah |
TRACE_LEVEL_WARNING (3) | Peristiwa peringatan seperti kegagalan alokasi |
TRACE_LEVEL_INFORMATION (4) | Peristiwa non-kesalahan seperti peristiwa masuk atau keluar |
TRACE_LEVEL_VERBOSE (5) | Peristiwa pelacakan terperinci |
DUMMYUNIONNAME2.Class.Version
Menunjukkan versi kelas pelacakan peristiwa yang Anda gunakan untuk mencatat peristiwa. Tentukan nol jika hanya ada satu versi kelas pelacakan peristiwa Anda. Versi ini memberi tahu konsumen kelas MOF mana yang akan digunakan untuk menguraikan data peristiwa.
ThreadId
Pada output, mengidentifikasi utas yang menghasilkan peristiwa.
Perhatikan bahwa pada Windows 2000, ThreadId adalah nilai ULONGLONG .
ProcessId
Pada output, mengidentifikasi proses yang menghasilkan peristiwa.
Windows 2000: Anggota ini tidak didukung.
TimeStamp
Pada output, berisi waktu peristiwa terjadi, dalam interval 100 nanodetik sejak tengah malam, 1 Januari 1601.
RegHandle
Menangani ke kelas pelacakan peristiwa terdaftar. Atur properti ini sebelum memanggil fungsi TraceEventInstance .
Fungsi RegisterTraceGuids membuat handel ini (lihat parameter TraceGuidReg ).
InstanceId
Pada output, berisi pengidentifikasi instans pelacakan peristiwa yang terkait dengan RegHandle.
ParentInstanceId
Pada output, berisi pengidentifikasi instans pelacakan peristiwa yang terkait dengan ParentRegHandle.
DUMMYUNIONNAME3
Persatuan struktur dan anggota.
DUMMYUNIONNAME3.DUMMYSTRUCTNAME
Struktur yang berisi anggota berikut.
DUMMYUNIONNAME3.DUMMYSTRUCTNAME.KernelTime
Waktu eksekusi yang berlalu untuk instruksi mode kernel, dalam centang CPU. Jika Anda menggunakan sesi privat, gunakan nilai di anggota ProcessorTime sebagai gantinya.
DUMMYUNIONNAME3.DUMMYSTRUCTNAME.UserTime
Waktu eksekusi yang berlalu untuk instruksi mode pengguna, dalam centang CPU. Jika Anda menggunakan sesi privat, gunakan nilai di anggota ProcessorTime sebagai gantinya.
DUMMYUNIONNAME3.ProcessorTime
Untuk sesi privat, waktu eksekusi yang berlalu untuk instruksi mode pengguna, dalam centang CPU.
DUMMYUNIONNAME3.DUMMYSTRUCTNAME2
Persatuan struktur dan anggota.
DUMMYUNIONNAME3.DUMMYSTRUCTNAME2.EventId
Pengidentifikasi peristiwa.
DUMMYUNIONNAME3.DUMMYSTRUCTNAME2.Flags
Harus berisi WNODE_FLAG_TRACED_GUID, dan mungkin juga berisi kombinasi dari berikut ini.
WNODE_FLAG_USE_GUID_PTR
Tentukan apakah anggota GuidPtr berisi GUID kelas.
WNODE_FLAG_USE_MOF_PTR
Tentukan apakah array struktur MOF_FIELD berisi data peristiwa yang ditambahkan ke struktur ini. Jumlah elemen dalam array terbatas pada MAX_MOF_FIELDS.
ParentRegHandle
Menangani ke kelas pelacakan peristiwa terdaftar dari peristiwa induk. Atur properti ini sebelum memanggil fungsi TraceEventInstance jika Anda ingin melacak hubungan hierarkis (elemen induk/elemen turunan) di antara peristiwa terkait.
Fungsi RegisterTraceGuids membuat handel ini (lihat parameter TraceGuidReg ).
Keterangan
Pastikan untuk menginisialisasi memori untuk struktur ini ke nol sebelum mengatur anggota mana pun.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 2000 Professional [hanya aplikasi desktop] |
Server minimum yang didukung | Windows 2000 Server [hanya aplikasi desktop] |
Header | evntrace.h |