Bagikan melalui


Mengonfigurasi dan Memulai Sesi Pencatat Global

Sesi pelacakan peristiwa Global Logger merekam peristiwa yang terjadi di awal proses boot sistem operasi. Aplikasi dan driver perangkat dapat menggunakan sesi Global Logger untuk mengambil jejak sebelum pengguna masuk. Perhatikan bahwa beberapa driver perangkat, seperti driver perangkat disk, tidak dimuat pada saat sesi Global Logger dimulai.

Nota

Jika Anda membuat sesi Global Logger di Windows Vista, Anda harus mempertimbangkan untuk membuat sesi AutoLogger sebagai gantinya.

Anda menggunakan registri untuk mengonfigurasi sesi Global Logger. Tambahkan kunci GlobalLogger ke kunci registri berikut, jika belum ada:

HKEY_LOCAL_MACHINE
   \SYSTEM
      \CurrentControlSet
         \Control
            \WMI

Tabel berikut ini menjelaskan nilai yang bisa Anda tentukan untuk kunci GlobalLogger. Anda harus memiliki hak istimewa administrator untuk menentukan nilai registri ini. Nilai registri memengaruhi semua penyedia yang mencatat peristiwa ke sesi Global Logger. Nilai Mulai adalah satu-satunya nilai yang diperlukan untuk memulai sesi Global Logger; semua nilai lain memiliki pengaturan default yang digunakan jika nilai tidak ada dalam registri. Biasanya, Anda harus menggunakan nilai default. Jika Anda menentukan nilai yang tidak dapat didukung ETW, ETW akan mengambil alih nilai.

Nilai Jenis Deskripsi
Mulai REG_DWORD Atur nilai ini ke 1 (aktif) untuk memulai sesi Global Logger saat berikutnya sistem dimulai. Untuk menghentikan sesi dimulai, atur nilai ini ke 0 (nonaktif).
BufferSize REG_DWORD Ukuran setiap buffer, dalam kilobyte. Nilai ini harus kurang dari satu megabyte. ETW menggunakan ukuran memori fisik untuk menghitung nilai ini.
ClockType REG_DWORD Timer yang digunakan saat mencatat stempel waktu untuk setiap peristiwa.
  • 1 = Nilai penghitung kinerja (resolusi tinggi)
  • 2 = Timer sistem
  • 3 = Penghitung siklus CPU
Untuk deskripsi setiap tipe jam, lihat bagian dari ClientContext pada WNODE_HEADER.
Nilai defaultnya adalah 1 (nilai penghitung kinerja) pada Windows Vista dan yang lebih baru. Sebelum Windows Vista, nilai defaultnya adalah 2 (timer sistem).
AktifkanBenderaKernel REG_BINARY Gunakan nilai ini untuk mengaktifkan satu atau beberapa penyedia kernel. Jika Anda mengaktifkan penyedia kernel, sesi Global Logger akan mengganti namanya menjadi NT Kernel Logger saat dimulai. Untuk nilai yang mungkin, lihat anggota EnableFlagsEVENT_TRACE_PROPERTIES.
FileCounter REG_DWORD Jumlah file log jejak peristiwa yang dihasilkan oleh sesi Global Logger. Sistem menaikkan nilai ini sampai mencapai nilai FileMax. Kemudian, ia mengatur ulang nilai menjadi 0. Penghitung ini mencegah sistem menimpa file log jejak Global Logger.
FileMax REG_DWORD Jumlah maksimum file log jejak peristiwa yang diizinkan pada sistem. Ketika jumlah log jejak mencapai maksimum yang ditentukan, sistem mulai menimpa log, dimulai dengan yang terlama.
Jika file log yang ditentukan di FileName ada, ETW menambahkan nilai FileCounter ke nama file. Misalnya, jika nama file log default digunakan, formulir %SystemRoot%\System32\LogFiles\WMI\GlobalLogger.etl.NNNN.
Nilai defaultnya adalah 0, yang berarti tidak ada maksimum.
FileName REG_SZ Jalur file log yang sepenuhnya memenuhi syarat. Jalur ke file ini harus ada. File log adalah file log berurutan. Perhatikan bahwa semua penyedia yang menulis peristiwa ke sesi Global Logger, akan menulis peristiwa ke file log ini. Jalur dibatasi hingga 1024 karakter. Jika FileName tidak ditentukan, peristiwa ditulis ke %SystemRoot%\System32\LogFiles\WMI\GlobalLogger.etl. Sebelum Windows Vista: File default adalah %SystemRoot%\System32\LogFiles\WMI\Trace.log.

FlushTimer REG_DWORD Seberapa sering, dalam hitungan detik, pelacakan buffer dibersihkan secara paksa. Waktu flush minimum adalah 1 detik. Flush paksa ini dilakukan selain flush otomatis yang terjadi ketika buffer penuh dan saat sesi pelacakan berhenti.
Untuk kasus pencatat data real-time, nilai nol (nilai default) berarti bahwa waktu flush akan diatur menjadi 1 detik. Pencatat waktu nyata adalah ketika LogFileMode diatur ke EVENT_TRACE_REAL_TIME_MODE.
Nilai defaultnya adalah 0. Secara default, buffer dibersihkan hanya ketika penuh.
LogFileMode REG_DWORD Memilih opsi sesi log. Untuk nilai, lihat Konstanta Mode Pengelogan. Nilai ini didukung pada Windows Vista dan yang lebih baru.
MaximumBuffers REG_DWORD Jumlah maksimum buffer yang akan dialokasikan. Biasanya, nilai ini adalah jumlah minimum buffer ditambah dua puluh. ETW menggunakan ukuran buffer dan ukuran memori fisik untuk menghitung nilai ini. Nilai ini harus lebih besar dari atau sama dengan nilai untuk MinimumBuffers.
UkuranFileMaksimum REG_DWORD Ukuran maksimum, dalam megabyte, dari file log jejak peristiwa. Secara default, tidak ada ukuran file maksimum.
PenyanggaMinimum REG_DWORD Jumlah minimum buffer untuk dialokasikan ketika sesi Global Logger dimulai. Jumlah minimum buffer yang dapat Anda tentukan adalah dua buffer per prosesor. Misalnya, pada satu komputer prosesor, jumlah minimum buffer adalah dua.
Nilai default pada sistem prosesor tunggal adalah 0x3.
Status REG_DWORD Status startup Perekam Global. Jika Global Logger gagal dimulai, nilai kunci ini adalah kode kesalahan Win32 yang sesuai. Jika Global Logger berhasil dimulai, nilai kunci ini adalah ERROR_SUCCESS (0).

Setelah registri dimodifikasi dan komputer dimulai ulang, sesi Global Logger dimulai secara otomatis dan digunakan seperti sesi lain dengan satu pengecualian: Anda menggunakan handel konstanta WMI_GLOBAL_LOGGER_ID (ditentukan dalam Wmistr.h) untuk mereferensikan sesi Global Logger. Konstanta ini dapat digunakan sebagai argumen untuk fungsi pelacakan peristiwa apa pun yang menerima handel sesi. Dalam fungsi yang menerima nama sesi, gunakan GLOBAL_LOGGER_NAME.

Pengontrol Global Logger tidak memanggil fungsi EnableTrace untuk mengaktifkan penyedia. Penyedia bertanggung jawab untuk menentukan apakah sesi Global Logger dimulai dan kemudian mengaktifkan dirinya sendiri.

Untuk menentukan apakah sesi Pencatat Global dimulai, Anda dapat memanggil fungsi ControlTrace , mengatur SessionHandle ke WMI_GLOBAL_LOGGER_ID dan ControlCode ke EVENT_TRACE_CONTROL_QUERY. Jika panggilan ControlTrace berhasil, sesi Global Logger ada dan penyedia dapat mengaktifkan sendiri dan mencatat peristiwa ke sesi Global Logger (fungsi ControlTrace mengembalikan ERROR_WMI_INSTANCE_NOT_FOUND jika Global Logger tidak aktif).

Biasanya, pengontrol bertanggung jawab untuk meneruskan tanda pengaktif dan tingkat kepada penyedia ketika pengontrol mengaktifkannya, tetapi karena pengontrol Global Logger tidak mengaktifkan penyedia, maka penyedia bertanggung jawab untuk meneruskan informasi ini ke dirinya sendiri apabila perlu.

Sesi Global Logger adalah sumber daya terbatas dan harus digunakan dengan hemat. Layanan yang ingin mengambil informasi selama proses boot harus mempertimbangkan untuk menambahkan logika pengontrol ke dirinya sendiri alih-alih menggunakan sesi Global Logger.

Untuk detail tentang memulai sesi pelacakan peristiwa, lihat Mengonfigurasi dan Memulai Sesi Pelacakan Peristiwa.

Untuk detail tentang memulai sesi pencatat privat, lihat Mengonfigurasi dan Memulai Sesi Pencatat Privat.

Untuk detail tentang memulai sesi NT Kernel Logger, lihat Mengonfigurasi dan Memulai Sesi Pencatat Kernel NT.