Bagikan melalui


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

Lihat juga

TraceEventInstance