Bagikan melalui


Fungsi QueryTraceW (evntrace.h)

Fungsi QueryTrace mengambil pengaturan properti dan statistik sesi untuk sesi pelacakan peristiwa yang ditentukan.

Fungsi ini sudah usang. Fungsi ControlTrace menggantikan fungsi ini.

Sintaks

ULONG WMIAPI QueryTraceW(
  CONTROLTRACE_ID         TraceId,
  LPCWSTR                 InstanceName,
  PEVENT_TRACE_PROPERTIES Properties
);

Parameter

TraceId

InstanceName

Nama sesi pelacakan peristiwa yang akan dikueri, atau NULL. Anda harus menentukan InstanceName jika TraceHandle adalah 0.

Untuk menentukan sesi NT Kernel Logger, atur InstanceName ke KERNEL_LOGGER_NAME.

Properties

Penunjuk ke struktur EVENT_TRACE_PROPERTIES yang diinisialisasi.

Anda hanya perlu mengatur anggota Wnode.BufferSize dari struktur EVENT_TRACE_PROPERTIES . Anda dapat menggunakan nama sesi maksimum (1024 karakter) dan panjang nama file log maksimum (1024 karakter) untuk menghitung ukuran buffer dan offset jika tidak diketahui.

Pada output, anggota struktur berisi pengaturan properti dan statistik sesi untuk sesi pelacakan peristiwa.

Dimulai dengan Windows 10, versi 1703: Untuk performa yang lebih baik dalam skenario lintas proses, Anda sekarang dapat meneruskan pemfilteran ke QueryTrace untuk pencatat privat luas sistem. Anda harus meneruskan struktur EVENT_TRACE_PROPERTIES_V2 baru untuk menyertakan informasi pemfilteran. Lihat Mengonfigurasi dan Memulai Sesi Pencatat Privat untuk detail selengkapnya.

Nilai kembali

Jika fungsi berhasil, nilai yang dikembalikan adalah ERROR_SUCCESS.

Jika fungsi gagal, nilai yang dikembalikan adalah salah satu kode kesalahan sistem. Berikut ini adalah beberapa kesalahan umum dan penyebabnya.

  • ERROR_BAD_LENGTH

    Salah satu hal berikut ini benar:

    • Anggota Properti Wnode.BufferSize menentukan ukuran yang salah.
    • Properti tidak memiliki cukup ruang yang dialokasikan untuk menyimpan salinan nama sesi dan nama file log (jika digunakan).
  • ERROR_INVALID_PARAMETER

    Salah satu hal berikut ini benar:

    • Properti adalah NULL.
    • InstanceName dan TraceHandle keduanya ADALAH NULL.
    • InstanceName adalah NULL dan TraceHandle bukan handel yang valid.
  • ERROR_ACCESS_DENIED

    Hanya pengguna yang berjalan dengan hak administratif yang ditingkatkan, pengguna di grup Pengguna Log Performa, dan layanan yang berjalan sebagai LocalSystem, LocalService, NetworkService yang dapat mengkueri sesi pelacakan peristiwa. Untuk memberi pengguna terbatas kemampuan untuk mengkueri sesi pelacakan, tambahkan ke grup Pengguna Log Performa atau lihat EventAccessControl.

    Windows XP dan Windows 2000: Siapa pun dapat mengontrol sesi pelacakan.

  • ERROR_WMI_INSTANCE_NOT_FOUND

    Sesi yang diberikan tidak berjalan.

Keterangan

Pengontrol pelacakan peristiwa memanggil fungsi ini.

Fungsi ini sudah usang. Sebagai gantinya, gunakan ControlTrace dengan ControlCode yang diatur ke EVENT_TRACE_CONTROL_QUERY.

Catatan

Header evntrace.h mendefinisikan QueryTrace sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta pra-prosesor UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 2000 Professional [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung Windows 2000 Server [aplikasi desktop | Aplikasi UWP]
Target Platform Windows
Header evntrace.h
Pustaka Advapi32.lib
DLL Advapi32.dll

Lihat juga

ControlTrace

QueryAllTraces