Bagikan melalui


Konstanta Mode Pengelogan

Konstanta berikut mewakili kemungkinan mode pengelogan untuk sesi pelacakan peristiwa.

Konstanta digunakan dalam anggota LogFileMode dari struktur EVENT_TRACE_LOGFILE, EVENT_TRACE_PROPERTIES , dan TRACE_LOGFILE_HEADER . Konstanta ini didefinisikan dalam file header Evntrace.h .

Mode Deskripsi
EVENT_TRACE_FILE_MODE_NONE (0x00000000) Sama seperti EVENT_TRACE_FILE_MODE_SEQUENTIAL tanpa ukuran file maksimum yang ditentukan.
EVENT_TRACE_FILE_MODE_SEQUENTIAL (0x00000001) Menulis peristiwa ke file log secara berurutan; berhenti ketika file mencapai ukuran maksimumnya. Jangan gunakan dengan EVENT_TRACE_FILE_MODE_CIRCULAR atau EVENT_TRACE_FILE_MODE_NEWFILE.
EVENT_TRACE_FILE_MODE_CIRCULAR (0x00000002) Menulis peristiwa ke file log. Setelah file mencapai ukuran maksimum, peristiwa terlama diganti dengan peristiwa masuk. Perhatikan bahwa konten file log melingkar mungkin muncul di luar urutan pada komputer multiprosesor.
Jangan gunakan dengan EVENT_TRACE_FILE_MODE_APPEND, EVENT_TRACE_FILE_MODE_NEWFILE, atau EVENT_TRACE_FILE_MODE_SEQUENTIAL.
EVENT_TRACE_FILE_MODE_APPEND (0x00000004) Menambahkan peristiwa ke file log berurutan yang ada. Jika file tidak ada, file akan dibuat. Gunakan hanya jika Anda menentukan waktu sistem untuk resolusi jam, jika tidak, ProcessTrace akan mengembalikan peristiwa dengan stempel waktu yang salah. Saat menggunakan EVENT_TRACE_FILE_MODE_APPEND, nilai untuk BufferSize, NumberOfProcessors, dan ClockType harus disediakan secara eksplisit dan harus sama di pencatat dan file yang ditambahkan.
Jangan gunakan dengan EVENT_TRACE_REAL_TIME_MODE, EVENT_TRACE_FILE_MODE_CIRCULAR, EVENT_TRACE_FILE_MODE_NEWFILE, atau EVENT_TRACE_PRIVATE_LOGGER_MODE.
Windows 2000: Nilai ini tidak didukung.
EVENT_TRACE_FILE_MODE_NEWFILE (0x00000008) Secara otomatis beralih ke file log baru ketika file mencapai ukuran maksimum. Anggota MaximumFileSizedari EVENT_TRACE_PROPERTIES harus diatur. Nama file yang ditentukan harus berupa string yang diformat (misalnya, string berisi %d, seperti c:\test%d.etl). Setiap kali file baru dibuat, penghitung bertahap dan nilainya digunakan, string yang diformat diperbarui, dan string yang dihasilkan digunakan sebagai nama file.
Opsi ini tidak diizinkan untuk sesi pelacakan peristiwa privat dan tidak boleh digunakan untuk sesi pencatat kernel NT.
Jangan gunakan dengan EVENT_TRACE_FILE_MODE_CIRCULAR, EVENT_TRACE_FILE_MODE_APPEND , atau EVENT_TRACE_FILE_MODE_SEQUENTIAL.
Windows 2000: Nilai ini tidak didukung.
EVENT_TRACE_FILE_MODE_PREALLOCATE(0x00000020) Cadangan EVENT_TRACE_PROPERTIES. MaximumFileSize byte ruang disk untuk file log terlebih dahulu. File menempati seluruh ruang selama pengelogan, untuk file log melingkar dan berurutan. Saat Anda menghentikan sesi, file log dikurangi ke ukuran yang diperlukan. Anda harus mengatur EVENT_TRACE_PROPERTIES. MaximumFileSize.
Anda tidak dapat menggunakan mode untuk sesi pelacakan peristiwa privat.
Windows 2000: Nilai ini tidak didukung.
EVENT_TRACE_NONSTOPPABLE_MODE(0x00000040) Sesi pengelogan tidak dapat dihentikan. Mode ini hanya didukung oleh Autologger.Opsi ini didukung pada Windows Vista dan yang lebih baru.
.
EVENT_TRACE_SECURE_MODE (0X00000080) Membatasi siapa yang dapat mencatat peristiwa ke sesi untuk mereka yang memiliki izin TRACELOG_LOG_EVENT . Opsi ini didukung pada Windows Vista dan yang lebih baru.
EVENT_TRACE_REAL_TIME_MODE (0x00000100) Memberikan peristiwa kepada konsumen secara real-time. Peristiwa dikirimkan ketika buffer dibersihkan, bukan pada saat penyedia menulis peristiwa. Anda tidak boleh mengaktifkan mode real-time jika tidak ada konsumen untuk mengonsumsi peristiwa karena panggilan ke peristiwa log akhirnya akan gagal ketika buffer menjadi penuh. Sebelum Windows Vista, jika peristiwa tidak dikonsumsi, peristiwa tersebut dibuang. Jangan tentukan lebih dari satu konsumen real-time dalam satu proses pada Windows XP atauWindows Server 2003. Sebagai gantinya, memiliki satu utas yang mengonsumsi peristiwa dan mendistribusikan peristiwa kepada orang lain.
Sebelum Windows Vista: Anda tidak boleh menggunakan mode real-time karena tingkat peristiwa yang didukung jauh lebih rendah daripada membaca dari file log (peristiwa mungkin dihilangkan). Selain itu, urutan peristiwa tidak dijamin pada komputer dengan beberapa prosesor. Mode real-time lebih cocok untuk peristiwa jenis pemberitahuan lalu lintas rendah.

Anda dapat menggabungkan mode ini dengan mode file log lainnya; namun, jangan gunakan mode ini dengan EVENT_TRACE_PRIVATE_LOGGER_MODE. Perhatikan bahwa jika Anda menggabungkan mode ini dengan mode file log lainnya, buffer akan dibersihkan sekali setiap detik, sehingga buffer yang diisi sebagian ditulis ke file log Anda. Misalnya jika Anda menggunakan buffer 64k dan tingkat pengelogan Anda adalah 1 peristiwa setiap detik, layanan akan menulis 64k/detik ke file log Anda.
EVENT_TRACE_DELAY_OPEN_FILE_MODE(0x00000200) Mode ini digunakan untuk menunda pembukaan file log hingga terjadi peristiwa.
Catatan:
Pada Windows Vista atau yang lebih baru, mode ini tidak berlaku, dan tidak boleh digunakan.
EVENT_TRACE_BUFFERING_MODE (0x00000400) Mode ini menulis peristiwa ke buffer memori melingkar. Peristiwa yang ditulis di luar ukuran total buffer mengeluarkan peristiwa tertua yang masih tersisa di buffer. Ukuran buffer memori ini adalah produk dari MinimumBuffers dan BufferSize (lihat EVENT_TRACE_PROPERTIES). Sebagai konsekuensi dari rumus ini, buffer apa pun yang menggunakan EVENT_TRACE_BUFFERING_MODE akan mengabaikan nilai MaximumBuffers .
Peristiwa tidak ditulis ke file log atau dikirimkan secara real-time, dan ETW tidak membersihkan buffer. Untuk mendapatkan rekam jepret buffer, panggil fungsi FlushTrace .
Mode ini sangat berguna untuk men-debug driver perangkat bersama dengan kemampuan untuk melihat konten buffer dalam memori dengan ekstensi debugger kernel WMITrace .
Jangan gunakan dengan EVENT_TRACE_FILE_MODE_SEQUENTIAL, EVENT_TRACE_FILE_MODE_CIRCULAR, EVENT_TRACE_FILE_MODE_APPEND, EVENT_TRACE_FILE_MODE_NEWFILE, atau EVENT_TRACE_REAL_TIME_MODE.
EVENT_TRACE_PRIVATE_LOGGER_MODE (0x00000800) Membuat sesi pelacakan peristiwa mode pengguna yang berjalan dalam proses yang sama dengan penyedia pelacakan peristiwanya. Memori untuk buffer berasal dari memori proses. Proses yang tidak memerlukan data dari kernel dapat menghilangkan overhead yang terkait dengan transisi mode kernel dengan menggunakan sesi pelacakan peristiwa privat.
Jika penyedia didaftarkan oleh beberapa proses, ETW menambahkan pengidentifikasi proses ke nama file log untuk membuat nama file log yang unik. Misalnya, jika pengontrol menentukan nama file log sebagai c:\mylogs\myprivatelog.etl, ETW membuat file log sebagai c:\mylogs\myprivatelog.etl_nnnn, di mana nnnn adalah pengidentifikasi proses. Pengidentifikasi proses tidak ditambahkan ke proses pertama yang mendaftarkan penyedia, itu ditambahkan hanya ke proses berikutnya yang mendaftarkan penyedia.
Sesi pelacakan peristiwa privat memiliki batasan berikut:
  • Sesi privat hanya dapat merekam peristiwa untuk utas proses yang dijalankannya.
  • Mungkin ada hingga delapan sesi privat per proses.
  • Sesi privat tidak dapat digunakan dengan pengiriman real-time.
  • Peristiwa yang dihasilkan oleh sesi privat tidak termasuk waktu eksekusi untuk instruksi mode kernel versus mode pengguna, atau detail tingkat utas dari waktu CPU yang digunakan.
Filter ID proses dan filter nama yang dapat dieksekusi sekarang dapat diteruskan ke API kontrol sesi saat pencatat privat di seluruh sistem dimulai. Untuk hasil terbaik dalam skenario lintas proses, filter yang sama harus diteruskan ke setiap operasi kontrol selama sesi, termasuk panggilan penyedia aktifkan/diasble. Perhatikan bahwa filter memiliki format yang sama dengan yang digunakan oleh EnableTraceEx2.
Anda dapat menggunakan mode ini bersama dengan mode EVENT_TRACE_PRIVATE_IN_PROC .
Sebelum Windows 10, versi 1703: Hanya LocalSystem, administrator, dan pengguna di grup administrator yang berjalan dalam proses yang ditinggikan yang dapat membuat sesi privat. Jika Anda menyertakan bendera EVENT_TRACE_PRIVATE_IN_PROC , setiap pengguna dapat membuat sesi privat dalam proses. Selain itu, dalam versi Windows sebelumnya, hanya boleh ada satu sesi privat per proses (kecuali mode EVENT_TRACE_PRIVATE_IN_PROC juga ditentukan, dalam hal ini Anda dapat membuat hingga tiga sesi privat dalam proses).
Sebelum Windows Vista: Pengguna di grup Pengguna Log Performa juga dapat membuat sesi privat.

Jangan gunakan dengan EVENT_TRACE_REAL_TIME_MODE.
Sebelum Windows 7 dan Windows Server 2008 R2: Jangan gunakan dengan EVENT_TRACE_FILE_MODE_NEWFILE.
EVENT_TRACE_ADD_HEADER_MODE(0x00001000) Opsi ini menambahkan header ke file log.
Catatan:
Pada Windows Vista atau yang lebih baru, mode ini tidak berlaku, dan tidak boleh digunakan.
EVENT_TRACE_USE_KBYTES_FOR_SIZE(0x00002000) Gunakan kilobyte sebagai unit pengukuran untuk menentukan ukuran file. Satuan ukuran default adalah megabyte. Mode ini berlaku untuk nilai registri MaxFileSize untuk sesi AutoLogger dan anggota EVENT_TRACE_PROPERTIES MaximumFileSize. Opsi ini didukung pada Windows Vista dan yang lebih baru.
EVENT_TRACE_USE_GLOBAL_SEQUENCE(0x00004000) Menggunakan nomor urut yang unik di seluruh sesi pelacakan peristiwa. Mode ini hanya berlaku untuk peristiwa yang dicatat menggunakan fungsi TraceMessage . Untuk informasi selengkapnya, lihat TraceMessage untuk detail penggunaan.
EVENT_TRACE_USE_GLOBAL_SEQUENCE dan EVENT_TRACE_USE_LOCAL_SEQUENCE saling eksklusif.
Windows 2000: Nilai ini tidak didukung.
EVENT_TRACE_USE_LOCAL_SEQUENCE (0x00008000) Menggunakan nomor urut yang unik hanya untuk sesi pelacakan peristiwa individual. Mode ini hanya berlaku untuk peristiwa yang dicatat menggunakan fungsi TraceMessage . Untuk informasi selengkapnya, lihat TraceMessage untuk detail penggunaan.
EVENT_TRACE_USE_GLOBAL_SEQUENCE dan EVENT_TRACE_USE_LOCAL_SEQUENCE saling eksklusif.
Windows 2000: Nilai ini tidak didukung.
EVENT_TRACE_RELOG_MODE (0x00010000) Mencatat peristiwa tanpa menyertakan EVENT_TRACE_HEADER. Catatan:
Mode ini tidak boleh digunakan. Ini disediakan untuk penggunaan internal.
Windows 2000: Nilai ini tidak didukung.
EVENT_TRACE_PRIVATE_IN_PROC (0x00020000) Gunakan bersama dengan mode EVENT_TRACE_PRIVATE_LOGGER_MODE untuk memulai sesi privat. Mode ini memberlakukan bahwa hanya proses yang mendaftarkan GUID penyedia yang dapat memulai sesi pencatat dengan GUID tersebut.
Anda dapat membuat hingga tiga sesi privat dalam proses per proses.
Opsi ini didukung pada Windows Vista dan yang lebih baru.
EVENT_TRACE_MODE_RESERVED(0x00100000) Opsi ini digunakan untuk memberi sinyal tumpukan dan pelacakan bagian penting. Opsi ini didukung pada Windows Vista dan yang lebih baru.
EVENT_TRACE_STOP_ON_HYBRID_SHUTDOWN(0x00400000) Opsi ini menghentikan pengelogan pada penonaktifan hibrid. Jika tidak ada EVENT_TRACE_STOP_ON_HYBRID_SHUTDOWN atau EVENT_TRACE_PERSIST_ON_HYBRID_SHUTDOWN yang ditentukan, ETW akan memilih default berdasarkan apakah pemanggil berasal dari Sesi 0 atau tidak. Opsi ini didukung pada Windows 8 dan Windows Server 2012.
EVENT_TRACE_PERSIST_ON_HYBRID_SHUTDOWN(0x00800000) Opsi ini melanjutkan pengelogan pada penonaktifan hibrid. Jika tidak ada EVENT_TRACE_STOP_ON_HYBRID_SHUTDOWN atau EVENT_TRACE_PERSIST_ON_HYBRID_SHUTDOWN yang ditentukan, ETW akan memilih default berdasarkan apakah pemanggil berasal dari Sesi 0 atau tidak. Opsi ini didukung pada Windows 8 dan Windows Server 2012.
EVENT_TRACE_USE_PAGED_MEMORY (0x01000000) Menggunakan memori halaman. Pengaturan ini disarankan agar peristiwa tidak menggunakan memori yang tidak dipagasi. Buffer yang tidak bertumpuk menggunakan memori yang tidak dipagasi untuk ruang buffer. Karena buffer yang tidak bertumpuk tidak pernah dipaginasi, sesi pengelogan berkinerja baik. Menggunakan buffer yang dapat di-pageable kurang intensif sumber daya.
Penyedia mode kernel dan pencatat sistem tidak dapat mencatat peristiwa ke sesi yang menentukan mode pengelogan ini.
Mode ini diabaikan jika EVENT_TRACE_PRIVATE_LOGGER_MODE diatur.
Anda tidak dapat menggunakan mode ini dengan Pencatat Kernel NT.
Windows 2000: Nilai ini tidak didukung.
EVENT_TRACE_SYSTEM_LOGGER_MODE(0x02000000) Opsi ini akan menerima peristiwa dari SystemTraceProvider. Jika parameter PropertiStartTraceLogFileMode menyertakan bendera ini, pencatat akan menjadi pencatat sistem. Opsi ini didukung pada Windows 8 dan Windows Server 2012.
EVENT_TRACE_INDEPENDENT_SESSION_MODE(0x08000000) Menunjukkan bahwa sesi pengelogan tidak boleh dipengaruhi oleh kegagalan EventWrite di sesi lain. Tanpa bendera ini, jika peristiwa tidak dapat diterbitkan ke salah satu sesi tempat penyedia diaktifkan, peristiwa tidak akan diterbitkan ke salah satu sesi. Ketika bendera ini diatur, kegagalan untuk menulis peristiwa ke satu sesi tidak akan menyebabkan fungsi EventWrite mengembalikan kode kesalahan di sesi lain.
Jangan gunakan dengan EVENT_TRACE_PRIVATE_LOGGER_MODE.
Opsi ini didukung pada Windows 8.1, Windows Server 2012 R2, dan yang lebih baru.
EVENT_TRACE_NO_PER_PROCESSOR_BUFFERING (0x10000000) Menulis peristiwa yang dicatat pada prosesor yang berbeda ke buffer umum. Menggunakan mode ini dapat menghilangkan masalah peristiwa yang muncul di luar urutan ketika peristiwa diterbitkan pada prosesor yang berbeda menggunakan waktu sistem. Mode ini juga dapat menghilangkan masalah dengan log melingkar yang muncul untuk menghilangkan peristiwa di beberapa komputer prosesor.
Jika Anda tidak menggunakan mode ini dan menggunakan waktu sistem, peristiwa mungkin tampak tidak berurutan pada beberapa komputer prosesor. Ini karena buffer ETW dikaitkan dengan prosesor alih-alih utas. Akibatnya, jika utas dialihkan dari satu CPU ke CPU lainnya, buffer yang terkait dengan CPU terakhir dapat dibersihkan ke disk sebelum yang terkait dengan CPU sebelumnya.
Jika Anda mengharapkan volume peristiwa yang tinggi (misalnya, lebih dari 1.000 peristiwa per detik), Anda tidak boleh menggunakan mode ini.
Perhatikan bahwa nomor prosesor tidak disertakan dengan peristiwa.
Opsi ini didukung pada Windows 7, Windows Server 2008 R2, dan yang lebih baru.
EVENT_TRACE_ADDTO_TRIAGE_DUMP(0x80000000) Opsi ini menambahkan buffer ETW ke dump triase. Opsi ini didukung pada Windows 8 dan Windows Server 2012.