struktur EVENT_TRACE_PROPERTIES_V2 (evntrace.h)

Struktur EVENT_TRACE_PROPERTIES_V2 berisi informasi tentang sesi pelacakan peristiwa. Anda menggunakan struktur ini dengan API seperti StartTrace dan ControlTrace saat menentukan, memperbarui, atau mengkueri properti sesi.

Catatan

Ini adalah struktur versi-2, diperluas dari struktur EVENT_TRACE_PROPERTIES . Struktur ini didukung dimulai dengan Windows 10 versi 1703. Ketika digunakan dengan versi Windows sebelumnya, bidang tambahan (misalnya FilterDesc dan V2Options) akan diabaikan.

Sintaks

typedef struct _EVENT_TRACE_PROPERTIES_V2 {
  WNODE_HEADER             Wnode;
  ULONG                    BufferSize;
  ULONG                    MinimumBuffers;
  ULONG                    MaximumBuffers;
  ULONG                    MaximumFileSize;
  ULONG                    LogFileMode;
  ULONG                    FlushTimer;
  ULONG                    EnableFlags;
  union {
    LONG AgeLimit;
    LONG FlushThreshold;
  } DUMMYUNIONNAME;
  ULONG                    NumberOfBuffers;
  ULONG                    FreeBuffers;
  ULONG                    EventsLost;
  ULONG                    BuffersWritten;
  ULONG                    LogBuffersLost;
  ULONG                    RealTimeBuffersLost;
  HANDLE                   LoggerThreadId;
  ULONG                    LogFileNameOffset;
  ULONG                    LoggerNameOffset;
  union {
    struct {
      ULONG VersionNumber : 8;
    } DUMMYSTRUCTNAME;
    ULONG V2Control;
  } DUMMYUNIONNAME2;
  ULONG                    FilterDescCount;
  PEVENT_FILTER_DESCRIPTOR FilterDesc;
  union {
    struct {
      ULONG Wow : 1;
      ULONG QpcDeltaTracking : 1;
      ULONG LargeMdlPages : 1;
      ULONG ExcludeKernelStack : 1;
    } DUMMYSTRUCTNAME;
    ULONG64 V2Options;
  } DUMMYUNIONNAME3;
} EVENT_TRACE_PROPERTIES_V2, *PEVENT_TRACE_PROPERTIES_V2;

Anggota

Wnode

Struktur WNODE_HEADER . Anda harus menentukan anggota BufferSize, Flags, dan Guid . Anda dapat secara opsional menentukan anggota ClientContext .

Penting

Agar bidang versi-2 (misalnya FilterDesc dan V2Options) dikenali, Anda harus mengatur WNODE_FLAG_VERSIONED_PROPERTIES bendera di Wnode.Flags.

BufferSize

Kilobyte memori yang dialokasikan untuk setiap buffer sesi pelacakan peristiwa. Ukuran buffer minimum adalah 4 (4KB). Ukuran buffer maksimum adalah 16384 (16MB). Sebagian besar sesi pelacakan harus menggunakan ukuran buffer 64KB atau kurang untuk menghindari membuang-buang memori dan ruang disk. Sebelum Windows 8: Ukuran buffer maksimum adalah 1024 (1MB).

Ukuran buffer yang lebih kecil mengurangi penggunaan memori sesi. Ukuran buffer yang lebih besar (hingga 64KB) mendukung pengumpulan peristiwa yang lebih besar -- ETW tidak dapat mengumpulkan peristiwa yang lebih besar dari ukuran buffer dan tidak dapat mengumpulkan peristiwa yang lebih besar dari 64KB terlepas dari ukuran buffer. Dalam skenario yang melibatkan throughput data yang sangat tinggi, ukuran buffer yang lebih besar dapat mengurangi overhead CPU.

  • Sesi dengan peristiwa kecil dan tingkat peristiwa rendah (beberapa KB/dtk) harus menggunakan ukuran buffer kecil (4KB hingga 16KB).
  • Sesi dengan peristiwa kecil dan tingkat peristiwa sedang harus menggunakan ukuran buffer sedang (16KB hingga 32KB).
  • Sesi dengan peristiwa besar atau tingkat peristiwa tinggi (beberapa MB/dtk) harus menggunakan ukuran buffer besar (64KB hingga 128KB).
  • Dalam kasus yang jarang terjadi ketika sejumlah besar memori harus dicadangkan untuk jejak diagnostik dengan ratusan megabyte data per detik, ukuran buffer besar (256KB hingga 1024KB) dapat mengurangi overhead CPU.

ETW dapat menyesuaikan BufferSize yang diminta ke atas dalam skenario tertentu. Misalnya, saat menulis file pelacakan ke disk, ETW dapat meningkatkan ukuran buffer ke kelipatan ukuran blok fisik disk.

Penting

BufferSize adalah salah satu parameter terpenting untuk sesi pelacakan. Buffer besar biasanya membuang-buang memori dan ruang disk. Sesi pelacakan dengan buffer besar (256KB atau lebih besar) harus digunakan hanya untuk penyelidikan atau pengujian diagnostik, bukan untuk pelacakan produksi.

Tip

Jangan gunakan BufferSize untuk mengontrol penggunaan memori sesi pelacakan. Sebagai gantinya, pilih ukuran buffer berdasarkan ukuran peristiwa sesi dan tingkat peristiwa Anda, lalu gunakan parameter MinimumBuffers dan MaximumBuffers untuk menyesuaikan penggunaan memori sesi.

MinimumBuffers

Jumlah minimum buffer yang disediakan untuk kumpulan buffer sesi pelacakan.

ETW dapat menyesuaikan nilai ini dalam skenario tertentu.

  • Jika mode pengelogan EVENT_TRACE_NO_PER_PROCESSOR_BUFFERING menyertakan bendera , ETW akan mencadangkan setidaknya 2 buffer.
  • Jika mode pengelogan tidak menyertakan EVENT_TRACE_NO_PER_PROCESSOR_BUFFERING bendera , ETW akan mencadangkan setidaknya 2 buffer untuk setiap prosesor logis.
  • Jika nilai ini lebih besar dari batas yang ditentukan ETW, ETW dapat menguranginya hingga batas untuk menghindari penggunaan memori yang berlebihan.

Untuk mode file dan jejak real-time dengan tingkat peristiwa sedang, sebagian besar pengguna harus meminimalkan penggunaan memori dengan mengatur MinimumBuffers ke 0 atau ke minimum kecil (misalnya 4 atau 8), memungkinkan ETW untuk menyesuaikan nilai ke atas berdasarkan jumlah prosesor. ETW akan memesan jumlah minimum buffer (disesuaikan) ketika jejak dimulai. Jika buffer diisi lebih cepat daripada yang dapat diproses, ETW akan mengalokasikan buffer tambahan, hingga jumlah yang ditentukan oleh MaximumBuffers.

Untuk jejak buffering-mode (circular in-memory), pengguna harus mengatur parameter MinimumBuffers sesuai dengan jumlah total memori yang Anda inginkan untuk dicadangkan ETW untuk sesi tersebut. Ini biasanya dihitung berdasarkan tingkat peristiwa yang diharapkan dan jumlah waktu yang Anda inginkan untuk menutupi jejak. Misalnya, jika Anda mengharapkan tingkat data 16KB per detik dan Anda ingin jejak Anda merekam setidaknya 60 detik data, Anda akan membutuhkan 960KB. Dengan asumsi ukuran buffer 32KB, Anda akan mengatur MinimumBuffers ke 30 (total 960KB / 32KB per buffer = 30 buffer). ETW akan memesan jumlah minimum buffer (disesuaikan) ketika jejak dimulai. Ketika semua buffer diisi, ETW akan menggunakan kembali buffer terisi terlama untuk acara baru. Perhatikan bahwa ETW tidak akan mengalokasikan buffer tambahan (ETW mengabaikan MaximumBuffers untuk jejak mode buffering).

MaximumBuffers

Jumlah maksimum buffer yang akan dialokasikan untuk kumpulan buffer sesi pelacakan.

ETW dapat menyesuaikan nilai ini dalam skenario tertentu.

  • Jika nilai ini kurang dari nilai MinimumBuffers yang disesuaikan, ETW dapat meningkatkannya ke nilai yang sesuai yang sama dengan atau lebih besar dari MinimumBuffers.
  • Jika nilai ini lebih besar dari batas yang ditentukan ETW, ETW dapat menguranginya hingga batas.

Sebagian besar pengguna harus mulai menyetel sesi mereka dengan mengatur MinimumBuffers dan MaximumBuffers ke nilai yang sama. Anda kemudian dapat meningkatkan nilai MaximumBuffers jika jejak menghilangkan peristiwa selama puncak tingkat peristiwa.

Catatan

ETW mengabaikan bidang ini untuk sesi mode buffering (sesi yang menyertakan mode EVENT_TRACE_BUFFERING_MODEpengelogan ). Sesi mode buffering selalu mengalokasikan MinimumBuffers di awal koleksi jejak dan tidak pernah mengalokasikan buffer tambahan.

MaximumFileSize

Ukuran maksimum file yang digunakan untuk mencatat peristiwa, dalam megabyte, atau nol tanpa batas ukuran. Biasanya, Anda menggunakan anggota ini untuk membatasi ukuran file log melingkar saat Anda mengatur LogFileMode ke EVENT_TRACE_FILE_MODE_CIRCULAR. Anggota ini harus diatur ke nilai bukan nol jika LogFileMode berisi EVENT_TRACE_FILE_MODE_PREALLOCATE, EVENT_TRACE_FILE_MODE_CIRCULAR atau EVENT_TRACE_FILE_MODE_NEWFILE.

Jika Anda menggunakan drive sistem (drive yang berisi sistem operasi) untuk pengelogan, ETW memeriksa ruang disk tambahan sebesar 200MB, terlepas dari apakah Anda menggunakan parameter ukuran file maksimum. Oleh karena itu, jika Anda menentukan 100MB sebagai ukuran file maksimum untuk file pelacakan di drive sistem, Anda harus memiliki ruang kosong 300MB pada drive.

LogFileMode

Bendera pengelogan untuk sesi pelacakan peristiwa. Anda menggunakan anggota ini untuk menentukan apakah Anda ingin peristiwa ditulis ke buffer melingkar dalam memori, file log, atau konsumen real-time. Anda juga dapat menggunakan anggota ini untuk menentukan karakteristik sesi lain, misalnya bahwa sesi tersebut adalah sesi pencatat privat. Untuk daftar bendera yang mungkin, lihat Konstanta Mode Pengelogan.

Jangan tentukan pengelogan real-time kecuali konsumen real-time siap untuk mengonsumsi peristiwa. Buffer ETW peristiwa untuk sesi real-time ketika tidak ada konsumen real-time. untuk sesi tersebut. Sesi real time tanpa konsumen akan membuang-buang sumber daya sistem. Perhatikan bahwa buffering ini terbatas. Jika batas tercapai, peristiwa baru akan diabaikan dan fungsi pengelogan gagal dengan STATUS_LOG_FILE_FULL. Sebelum Windows Vista: Jika tidak ada konsumen real-time, peristiwa dibuang dan pengelogan berlanjut.

Jika konsumen mulai memproses peristiwa real-time, peristiwa dalam file pemutaran akan dikonsumsi terlebih dahulu. Setelah semua peristiwa dalam file pemutaran digunakan, sesi akan mulai melaporkan peristiwa baru.

FlushTimer

Seberapa sering, dalam detik, buffer pelacakan yang tidak kosong dibersihkan.

  • Untuk sesi mode file, waktu flush minimum adalah 1 detik. Mengatur FlushTimer ke 0 akan menonaktifkan flush berbasis waktu (flush akan terjadi ketika buffer diisi, ketika sesi dihentikan, atau ketika sesi secara eksplisit dihapus). Sebagian besar jejak mode file harus mengatur FlushTimer ke 0 untuk menghindari ruang yang terbuang dalam file pelacakan. Anda mungkin ingin mengatur timer ke nilai bukan nol jika ada kemungkinan jejak mungkin tidak ditutup (misalnya jika Anda ingin memastikan untuk mendapatkan peristiwa bahkan jika sistem crash).
  • Untuk sesi real-time, waktu flush minimum adalah 1 detik. Jika FlushTimer diatur ke 0, batas waktu default 1 detik akan digunakan. Sesi real-time harus mengatur timer flush berdasarkan seberapa cepat data perlu diterima. Perhatikan bahwa nilai timer yang lebih tinggi akan mengurangi overhead CPU untuk pelacakan. Sebagian besar jejak real-time harus dimulai dengan timer 5 atau 10 detik dan menyetel timer berdasarkan kebutuhan.
  • Untuk sesi buffered (melingkar dalam memori), FlushTimer tidak digunakan. Data pelacakan hanya akan dibersihkan sesuai permintaan (yaitu dibersihkan ke file melalui ControlTrace).

EnableFlags

Sesi pencatat sistem dapat mengatur EnableFlags untuk menunjukkan peristiwa SystemTraceProvider mana yang harus disertakan dalam jejak.

Catatan

EnableFlags hanya valid untuk pencatat sistem, yaitu sesi pelacakan yang dimulai menggunakan bendera mode pencatat EVENT_TRACE_SYSTEM_LOGGER_MODE , KERNEL_LOGGER_NAME nama sesi, SystemTraceControlGuid GUID sesi, atau GlobalLoggerGuid GUID sesi.

Anggota ini bisa berisi satu atau beberapa nilai berikut. Selain peristiwa yang Anda tentukan, kecuali Anda menentukan EVENT_TRACE_FLAG_NO_SYSCONFIG, pencatat juga merekam peristiwa konfigurasi perangkat keras pada Windows XP dan peristiwa konfigurasi sistem pada Windows Server 2003 atau yang lebih baru.

  • EVENT_TRACE_FLAG_ALPC (0x00100000)

    Mengaktifkan jenis peristiwa ALPC .

    Nilai ini didukung pada Windows Vista dan yang lebih baru.

  • EVENT_TRACE_FLAG_CSWITCH (0x00000010)

    Mengaktifkan jenis peristiwa Utas berikut:

    Nilai ini didukung pada Windows Vista dan yang lebih baru.

  • EVENT_TRACE_FLAG_DBGPRINT (0x00040000)

    Memungkinkan panggilan DbgPrint dan DbgPrintEx dikonversi ke peristiwa ETW.

  • EVENT_TRACE_FLAG_DISK_FILE_IO (0x00000200)

    Mengaktifkan jenis peristiwa FileIo berikut (Anda juga harus mengaktifkan EVENT_TRACE_FLAG_DISK_IO):

  • EVENT_TRACE_FLAG_DISK_IO (0x00000100)

    Mengaktifkan jenis peristiwa DiskIo berikut:

  • EVENT_TRACE_FLAG_DISK_IO_INIT (0x00000400)

    Mengaktifkan jenis peristiwa DiskIo berikut:

    Nilai ini didukung pada Windows Vista dan yang lebih baru.

  • EVENT_TRACE_FLAG_DISPATCHER (0x00000800)

    Mengaktifkan jenis peristiwa Utas berikut:

    Nilai ini didukung pada Windows 7, Windows Server 2008 R2, dan yang lebih baru.

  • EVENT_TRACE_FLAG_DPC (0x00000020)

    Mengaktifkan jenis peristiwa PerfInfo berikut:

    Nilai ini didukung pada Windows Vista dan yang lebih baru.

  • EVENT_TRACE_FLAG_DRIVER (0x00800000)

    Mengaktifkan jenis peristiwa DiskIo berikut:

    Nilai ini didukung pada Windows Vista dan yang lebih baru.

  • EVENT_TRACE_FLAG_FILE_IO (0x02000000)

    Mengaktifkan jenis peristiwa FileIo berikut:

    Nilai ini didukung pada Windows Vista dan yang lebih baru.

  • EVENT_TRACE_FLAG_FILE_IO_INIT (0x04000000)

    Mengaktifkan jenis peristiwa FileIo berikut:

    Nilai ini didukung pada Windows Vista dan yang lebih baru.

  • EVENT_TRACE_FLAG_IMAGE_LOAD (0x00000004)

    Mengaktifkan jenis peristiwa Gambar berikut:

  • EVENT_TRACE_FLAG_INTERRUPT (0x00000040)

    Mengaktifkan jenis peristiwa PerfInfo berikut:

    Nilai ini didukung pada Windows Vista dan yang lebih baru.

  • EVENT_TRACE_FLAG_JOB (0x00080000)

    Nilai ini didukung pada Windows 10

  • EVENT_TRACE_FLAG_MEMORY_HARD_FAULTS (0x00002000)

    Mengaktifkan jenis peristiwa PageFault_V2 berikut:

  • EVENT_TRACE_FLAG_MEMORY_PAGE_FAULTS (0x00001000)

    Mengaktifkan jenis peristiwa PageFault_V2 berikut:

  • EVENT_TRACE_FLAG_NETWORK_TCPIP (0x00010000)

    Mengaktifkan jenis peristiwa TcpIp dan UdpIp .

  • EVENT_TRACE_FLAG_NO_SYSCONFIG (0x10000000)

    Jangan melakukan rundown konfigurasi sistem.

    Nilai ini didukung pada Windows 8, Windows Server 2012, dan yang lebih baru.

  • EVENT_TRACE_FLAG_PROCESS (0x00000001)

    Mengaktifkan jenis peristiwa Proses berikut:

  • EVENT_TRACE_FLAG_PROCESS_COUNTERS (0x00000008)

    Mengaktifkan jenis peristiwa Process_V2 berikut:

    Nilai ini didukung pada Windows Vista dan yang lebih baru.

  • EVENT_TRACE_FLAG_PROFILE (0x01000000)

    Mengaktifkan jenis peristiwa PerfInfo berikut:

    Nilai ini didukung pada Windows Vista dan yang lebih baru.

  • EVENT_TRACE_FLAG_REGISTRY (0x00020000)

    Mengaktifkan jenis peristiwa Registri .

  • EVENT_TRACE_FLAG_SPLIT_IO (0x00200000)

    Mengaktifkan jenis peristiwa SplitIo .

    Nilai ini didukung pada Windows Vista dan yang lebih baru.

  • EVENT_TRACE_FLAG_SYSTEMCALL (0x00000080)

    Mengaktifkan jenis peristiwa PerfInfo berikut:

    Nilai ini didukung pada Windows Vista dan yang lebih baru.

  • EVENT_TRACE_FLAG_THREAD (0x00000002)

    Mengaktifkan jenis peristiwa Utas berikut:

  • EVENT_TRACE_FLAG_VAMAP (0x00008000)

    Mengaktifkan jenis peristiwa peta dan batalkan peta (tidak termasuk file gambar).

    Nilai ini didukung pada Windows 8, Windows Server 2012, dan yang lebih baru.

  • EVENT_TRACE_FLAG_VIRTUAL_ALLOC (0x00004000)

    Mengaktifkan jenis peristiwa PageFault_V2 berikut:

    Nilai ini didukung pada Windows 7, Windows Server 2008 R2, dan yang lebih baru.

DUMMYUNIONNAME

Tidak digunakan.

DUMMYUNIONNAME.AgeLimit

Tidak digunakan.

Windows 2000: Penundaan waktu sebelum buffer yang tidak digunakan dibebaskan, dalam hitungan menit. Defaultnya adalah 15 menit.

DUMMYUNIONNAME.FlushThreshold

NumberOfBuffers

Pada output, jumlah buffer yang dialokasikan untuk kumpulan buffer sesi pelacakan peristiwa.

FreeBuffers

Pada output, jumlah buffer yang dialokasikan tetapi tidak digunakan dalam kumpulan buffer sesi pelacakan peristiwa.

EventsLost

Pada output, jumlah peristiwa yang tidak direkam.

BuffersWritten

Pada output, jumlah buffer yang ditulis.

LogBuffersLost

Pada output, jumlah buffer yang tidak dapat ditulis ke file log.

RealTimeBuffersLost

Pada output, jumlah buffer yang tidak dapat dikirimkan secara real-time kepada konsumen.

LoggerThreadId

Pada output, pengidentifikasi utas untuk sesi pelacakan peristiwa.

LogFileNameOffset

Offset (dalam byte) dari awal memori yang dialokasikan struktur ini ke awal string yang dihentikan nul yang berisi nama file log.

Nama file biasanya memiliki .etl ekstensi. Semua folder di jalur harus sudah ada (ETW tidak akan membuat folder untuk Anda). Jalurnya bisa relatif, absolut, lokal, atau jarak jauh. Variabel lingkungan di jalur tidak akan diperluas. Pengguna harus memiliki izin untuk menulis ke folder.

Nama file log dibatasi hingga 1.024 karakter. Jika Anda mengatur LogFileMode ke EVENT_TRACE_PRIVATE_LOGGER_MODE atau EVENT_TRACE_FILE_MODE_NEWFILE, pastikan untuk mencadangkan cukup memori untuk menyertakan pengidentifikasi proses yang akan ditambahkan ke nama file untuk sesi pencatat privat dan nomor berurutan yang ditambahkan ke file log yang dibuat menggunakan mode log file baru.

Jika Anda tidak ingin mencatat peristiwa ke file log (misalnya, jika Anda hanya menentukan EVENT_TRACE_REAL_TIME_MODE ), atur LogFileNameOffset ke 0. Jika Anda hanya menentukan pengelogan real time dan juga memberikan offset dengan nama file log yang valid, ETW akan menggunakan nama file log untuk membuat file log berurutan dan mencatat peristiwa ke file log selain mengirim peristiwa ke konsumen real-time. ETW juga membuat file log berurutan jika LogFileMode adalah 0 dan Anda memberikan offset dengan nama file log yang valid.

Jika Anda ingin mencatat peristiwa ke file log, Anda harus mencadangkan cukup memori agar struktur ini menyertakan nama file log dan nama sesi mengikuti struktur. Nama file log harus mengikuti nama sesi dalam memori. Lihat komentar untuk contoh.

File pelacakan dibuat menggunakan deskriptor keamanan default, yang berarti bahwa file log akan memiliki ACL yang sama dengan direktori induk. Jika Anda ingin akses ke file dibatasi, buat direktori induk dengan ACL yang sesuai.

LoggerNameOffset

Offset (dalam byte) dari awal memori struktur yang dialokasikan ke awal string yang dihentikan nul yang berisi nama sesi.

Penting

Gunakan nama deskriptif untuk sesi Anda sehingga kepemilikan dan penggunaan sesi dapat ditentukan dari nama sesi. Jangan gunakan GUID atau nilai non-deskriptif lainnya. Jangan tambahkan digit acak untuk membuat nama sesi Anda unik. Sesi ETW adalah sumber daya terbatas sehingga komponen Anda tidak boleh memulai beberapa sesi. Jika sesi komponen Anda sudah berjalan saat komponen dimulai, komponen Anda harus membersihkan sesi tanpa induk daripada membuat sesi kedua.

Nama sesi dibatasi hingga 1.024 karakter. Nama sesi tidak peka huruf besar/kecil. Sistem tidak akan memulai sesi baru jika sesi lain dengan nama yang sama sudah berjalan.

Windows 2000: Nama sesi peka huruf besar/kecil. Akibatnya, sesi dengan nama yang berbeda hanya jika diizinkan. Namun, untuk mengurangi kebingungan, Anda harus memastikan nama sesi Anda unik.

DUMMYUNIONNAME2

Tidak digunakan.

DUMMYUNIONNAME2.DUMMYSTRUCTNAME

Tidak digunakan.

DUMMYUNIONNAME2.DUMMYSTRUCTNAME.VersionNumber

Versi struktur. Ini harus diatur ke "2".

Catatan

Bidang ini dan semua bidang berikutnya hanya akan dikenali jika bidang Wnode.Flags menyertakan WNODE_FLAG_VERSIONED_PROPERTIES bendera dan runtime ETW yang mendasarinya mengenali versi struktur baru (Windows 10 versi 1703 dan yang lebih baru).

DUMMYUNIONNAME2.V2Control

Tidak digunakan.

FilterDescCount

Jumlah filter yang ditunjuk filterDesc . Ini harus nol kecuali mengonfigurasi pencatat privat di seluruh sistem.

FilterDesc

Jenis filter EVENT_FILTER_DESCRIPTOR yang didukung untuk pencatat privat di seluruh sistem: EVENT_FILTER_TYPE_EXECUTABLE_NAME dan EVENT_FILTER_TYPE_PID

Penunjuk ke array struktur EVENT_FILTER_DESCRIPTOR yang menunjuk ke data filter. Jumlah elemen dalam array ditentukan dalam anggota FilterDescCount . Hanya boleh ada satu filter untuk jenis filter tertentu seperti yang ditentukan oleh anggota Jenis struktur EVENT_FILTER_DESCRIPTOR .

Ini harus NULL kecuali mengonfigurasi pencatat privat di seluruh sistem.

DUMMYUNIONNAME3

Tidak digunakan.

DUMMYUNIONNAME3.DUMMYSTRUCTNAME

Tidak digunakan.

DUMMYUNIONNAME3.DUMMYSTRUCTNAME.Wow

Tidak digunakan.

DUMMYUNIONNAME3.DUMMYSTRUCTNAME.QpcDeltaTracking

Tidak digunakan.

DUMMYUNIONNAME3.DUMMYSTRUCTNAME.LargeMdlPages

DUMMYUNIONNAME3.DUMMYSTRUCTNAME.ExcludeKernelStack

DUMMYUNIONNAME3.V2Options

Tidak digunakan.

Keterangan

Struktur ini berulah mirip dengan EVENT_TRACE_PROPERTIES dengan beberapa pengecualian.

Awal struktur didefinisikan persis seperti EVENT_TRACE_PROPERTIES untuk memungkinkan struktur baru ini kompatibel dengan sistem yang menjalankan versi Windows sebelum Windows 10, versi 1703 dan akan diperlakukan sebagai EVENT_TRACE_PROPERTIES.

Saat menggunakan struktur ini, pastikan untuk menyertakan WNODE_FLAG_VERSIONED_PROPERTIES dalam Wnode.Flags untuk menunjukkan bahwa ini adalah struktur versi-2.

Perhatikan bahwa filter yang diteruskan ke StartTrace dan ControlTrace melalui struktur ini memiliki semantik yang sama dengan filter yang digunakan oleh fungsi EnableTraceEx2 .

Ketika Anda mengalokasikan memori untuk struktur ini, Anda harus mengalokasikan cukup memori untuk menyertakan nama sesi dan nama file log mengikuti struktur. Nama sesi harus muncul sebelum nama file log dalam memori. Anda harus menyalin nama file log ke offset tetapi Anda tidak menyalin nama sesi ke offset. Fungsi StartTrace menyalin nama untuk Anda.

Pastikan untuk menginisialisasi memori untuk struktur ini ke nol sebelum mengatur anggota mana pun. Contohnya:

typedef struct EventTracePropertyData2 {
    EVENT_TRACE_PROPERTIES_V2 Props;
    WCHAR LoggerName[128];
    WCHAR LogFileName[1024];
} EventTracePropertyData2;

EventTracePropertyData2 data = { 0 };
data.Props.Wnode.BufferSize = sizeof(data);
data.Props.Wnode.Flags = WNODE_FLAG_TRACED_GUID | WNODE_FLAG_VERSIONED_PROPERTIES;
data.Props.LogFileNameOffset = offsetof(EventTracePropertyData2, LogFileName);
data.Props.LoggerNameOffset = offsetof(EventTracePropertyData2, LoggerName);

Peristiwa dari penyedia ditulis ke buffer sesi. Ketika buffer dalam file atau sesi real-time penuh (atau ketika FlushTimer kedaluwarsa), sesi menghapus buffer baik dengan menulis peristiwa ke file log, mengirimkannya ke konsumen real-time, atau keduanya. Jika buffer sesi diisi lebih cepat daripada yang dapat dibersihkan, buffer baru dialokasikan dan ditambahkan ke kumpulan buffer sesi, hingga MaximumBuffers. Di luar batas ini, sesi membuang peristiwa masuk hingga buffer tersedia. Setiap sesi menyimpan catatan jumlah peristiwa yang dibuang (lihat anggota EventsLost ).

ETW tidak membebaskan buffer yang tidak digunakan.

Windows 2000: ETW membebaskan buffer yang tidak digunakan berdasarkan nilai anggota AgeLimit .

Untuk melihat statistik sesi, seperti EventsLost saat sesi berjalan, panggil fungsi ControlTrace dan atur parameter ControlCode ke EVENT_TRACE_CONTROL_QUERY.

Persyaratan

   
Klien minimum yang didukung Windows 10 [khusus aplikasi desktop]
Server minimum yang didukung Windows Server 2016 [hanya aplikasi desktop]
Header evntrace.h

Lihat juga

StartTrace

ControlTrace

QueryAllTraces

Konstanta Mode Pengelogan

EVENT_TRACE_PROPERTIES_V2

WNODE_HEADER