Bagikan melalui


Fungsi ProcessTrace (evntrace.h)

Fungsi ProcessTrace memberikan peristiwa dari satu atau beberapa sesi pemrosesan jejak ETW kepada konsumen.

Sintaks

ETW_APP_DECLSPEC_DEPRECATED ULONG WMIAPI ProcessTrace(
  [in] PTRACEHANDLE HandleArray,
  [in] ULONG        HandleCount,
  [in] LPFILETIME   StartTime,
  [in] LPFILETIME   EndTime
);

Parameter

[in] HandleArray

Penunjuk ke array handel sesi pemrosesan pelacakan yang diperoleh dari panggilan sebelumnya ke fungsi OpenTrace .

Array dapat berisi hingga 64 handel ke sesi pemrosesan file atau dapat berisi satu handel ke sesi pemrosesan real time. Array tidak boleh berisi handel sesi pemrosesan file dan handel sesi pemrosesan real time.

[in] HandleCount

Jumlah elemen dalam HandleArray.

[in] StartTime

Penunjuk ke struktur FILETIME opsional yang menentukan periode waktu awal yang ingin Anda terima peristiwanya. Fungsi ini tidak mengirimkan peristiwa dengan tanda waktu sebelum StartTime.

[in] EndTime

Penunjuk ke struktur FILETIME opsional yang menentukan periode waktu akhir yang ingin Anda terima peristiwanya. Fungsi ini tidak mengirimkan peristiwa dengan tanda waktu setelah EndTime.

Windows Server 2003: Nilai ini diabaikan untuk pengiriman peristiwa real time.

Menampilkan nilai

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

    HandleCount tidak valid atau jumlah handel lebih besar dari 64.

  • ERROR_INVALID_HANDLE

    Elemen HandleArray bukan handel sesi pelacakan peristiwa yang valid.

  • ERROR_INVALID_TIME

    EndTime kurang dari StartTime.

  • ERROR_INVALID_PARAMETER

    HandleArray adalah NULL, berisi sesi pemrosesan file dan sesi pemrosesan real-time, atau berisi lebih dari satu sesi pemrosesan real time.

  • ERROR_NOACCESS

    Pengecualian terjadi di salah satu fungsi panggilan balik yang menerima peristiwa.

  • ERROR_CANCELLED

    Menunjukkan konsumen membatalkan pemrosesan dengan mengembalikan FALSE dalam fungsi BufferCallback mereka.

  • ERROR_WMI_INSTANCE_NOT_FOUND

    Sesi pengumpulan jejak tempat Anda mencoba mengonsumsi peristiwa secara real time tidak berjalan atau tidak mengaktifkan mode pelacakan real time.

Keterangan

Konsumen pelacakan memanggil fungsi ini untuk memproses peristiwa dari satu atau beberapa sesi pemrosesan jejak. Fungsi ini memblokir hingga pemrosesan berakhir.

Sebelum memanggil ProcessTrace, gunakan OpenTrace untuk membuka handel untuk melacak sesi pemrosesan.

Fungsi ProcessTrace memberikan peristiwa dari sesi dengan memanggil fungsi panggilan balik BufferCallback, EventCallback, dan EventRecordCallback konsumen.

Fungsi ProcessTrace mencoba mengirimkan peristiwa secara berurutan berdasarkan tanda waktu peristiwa (yaitu mencoba mengirimkan peristiwa terlama ke yang terbaru). Dalam kasus tertentu, ProcessTrace mungkin mengirimkan peristiwa secara tidak berurutan.

  • Jika jam yang digunakan untuk tanda waktu peristiwa disesuaikan mundur selama pengumpulan jejak, urutan pengiriman peristiwa tidak dapat diprediksi. Untuk menghindari masalah ini, gunakan jam QPC alih-alih jam waktu sistem saat mengumpulkan jejak.
  • Jika beberapa peristiwa dikumpulkan dengan tanda waktu yang sama pada CPU yang berbeda, urutan pengiriman peristiwa tidak dapat diprediksi.
  • Jika suatu peristiwa memiliki tanda waktu yang tidak valid (misalnya karena kerusakan file), urutan pengiriman peristiwa tersebut dan peristiwa lain dalam jejak mungkin tidak dapat diprediksi.

Fungsi ProcessTrace memblokir utas hingga mengirimkan semua peristiwa, fungsi BufferCallback mengembalikan FALSE, atau Anda memanggil CloseTrace. Selain itu, jika konsumen mengonsumsi peristiwa secara real time, fungsi ProcessTrace akan kembali setelah pengontrol menghentikan sesi pelacakan. (Perhatikan bahwa mungkin ada penundaan beberapa detik sebelum fungsi kembali.)

Windows Server 2003: Anda dapat memanggil CloseTrace hanya setelah ProcessTrace kembali.

Contoh

Untuk contoh yang menggunakan ProcessTrace, lihat Menggunakan TdhFormatProperty untuk Mengonsumsi Data Peristiwa.

Persyaratan

   
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 Sechost.lib pada Windows 8.1 dan Windows Server 2012 R2; Advapi32.lib di Windows 8, Windows Server 2012, Windows 7, Windows Server 2008 R2, Windows Server 2008, Windows Vista, dan Windows XP
DLL Sechost.dll pada Windows 8.1 dan Windows Server 2012 R2; Advapi32.dll pada Windows 8, Windows Server 2012, Windows 7, Windows Server 2008 R2, Windows Server 2008, Windows Vista, dan Windows XP

Lihat juga

BufferCallback

EventCallback

EventRecordCallback

OpenTrace