Bagikan melalui


Prapemroscessor WPP

Bagian ini menjelaskan Windows Software Trace Preprocessor, umumnya dikenal sebagai preproscesor WPP.

Memanggil Prapemrosedaan WPP

Anda dapat memanggil pra-prosesor WPP menggunakan Visual Studio dan lingkungan MSBuild.

Untuk memanggil prapemrossor WPP

  1. Klik kanan proyek driver di Penjelajah Solusi dan klik Properti.

  2. Di halaman properti proyek, klik Properti Konfigurasi dan klik Pelacakan WPP

  3. Di bawah Umum, atur opsi Jalankan WPP ke Ya.

  4. Di bawah Baris Perintah, Anda dapat menambahkan opsi di bawah ini untuk menyesuaikan perilaku pelacakan.

    Misalnya, di bawah Pelacakan WPP, Anda dapat menentukan satu file Data Konfigurasi Pemindaian.

    Jika Anda perlu menyediakan lebih dari satu file konfigurasi, misalnya untuk menentukan jenis data kustom, referensikan file Anda di Baris Perintah menggunakan opsi -scan, misalnya:

    -scan:"$(KMDF_INC_PATH)\$(KMDF_VER_PATH)\WdfTraceEnums.h"
    

Untuk informasi selengkapnya tentang proses build, lihat tugas TraceWPP dan lingkungan build WDK dan Visual Studio.

Anda juga dapat menjalankan pra-prosesor yang terpisah dari lingkungan build dengan menggunakan alat TraceWPP (TraceWPP.exe). Alat ini terletak di subdirektori bin/x86 WDK.

Opsi Umum Pelacakan WPP

Tabel berikut ini menjelaskan opsi untuk praprosesor WPP. Anda dapat mengonfigurasi opsi ini di Visual Studio menggunakan halaman properti Pelacakan WPP untuk proyek Anda, atau sebagai parameter ke alat TraceWPP.

Opsi Pelacakan WPP Deskripsi

Jalankan WPP

Jika true, panggil WPP.

Aktifkan Pembangunan Ulang Minimal

Jika true, build inkremental yang dilacak dilakukan; jika false, pembangunan ulang dilakukan.

Opsi Fungsi dan Makro

Opsi Pelacakan WPP Opsi perintah TraceWPP Deskripsi

Definisi Praprosesor

-DMakro

Menambahkan makro #define ke awal file yang dihasilkan di mana Makro adalah nama makro.

Opsi ini memiliki efek yang sama dengan opsi pengkompilasi /D (tentukan makro). Ini disertakan untuk memastikan bahwa definisi valid pada awal file TMH.

Ekspansi Makro=-D

Menambahkan #define Ekspansi Makro ke awal file yang dihasilkan di mana Makro adalah nama makro dan Ekspansi adalah nilai yang diperluas.

Opsi ini memiliki efek yang sama dengan opsi pengkompilasi /D (tentukan makro). Ini disertakan untuk memastikan bahwa definisi valid pada awal file TMH.

Melacak Komponen Mode Kernel

-kilometer

Menentukan makro WPP_KERNEL_MODE, yang melacak komponen mode kernel. Secara default, hanya komponen mode pengguna yang dilacak.

Aktifkan Makro Dll

-dll

Menentukan makro WPP_DLL, yang menyebabkan struktur data WPP diinisialisasi setiap kali WPP_INIT_TRACING dipanggil. Jika tidak, struktur hanya diinisialisasi sekali.

Tentukan GUID Kontrol

-ctl: GUID

Menentukan makro WPP_CONTROL_GUIDS dengan guid kontrol dan entri WPP_DEFINE_BIT yang ditentukan bernama Kesalahan, Tidak Biasa, dan Kebisingan.

Ini adalah alternatif untuk menambahkan makro ke file sumber.

GUID mewakili GUID kontrol.

Opsi Pencarian dan Pemformatan

Opsi Pelacakan WPP Opsi perintah TraceWPP Deskripsi

Abaikan Tanda Seru

-noshrieks

Mengarahkan WPP untuk mengabaikan tanda seru, juga dikenal sebagai "jeritan."

Digunakan dalam pemformatan kompleks, seperti %!timestamp!%. Secara default, tanda seru diperlukan dan WPP mencoba menafsirkannya.

Basis numerik untuk penomoran string format

-argbase: Nomor

Menetapkan basis numerik untuk penomoran string format, seperti "%1!d!, %2!s!." Defaultnya adalah 1.

Fungsi untuk menghasilkan pesan pelacakan

-func: FunctionDescription

Menentukan alternatif untuk makro DoTraceMessage. Fungsi-fungsi ini kemudian dapat digunakan untuk menghasilkan pesan pelacakan.

Misalnya, Anda dapat menentukan fungsi yang menentukan bendera dan tingkat untuk pesan pelacakan, seperti:

-func (DoMyTraceMessage(LEVEL,FLAGS,MSG,...)

Anda dapat menggunakan beberapa instans opsi -func .

Opsi ini adalah alternatif untuk menentukan deskripsi fungsi dalam file konfigurasi lokal.

Tentukan string yang akan dicari

-lookfor:String

Mengarahkan WPP untuk mencari file sumber untuk string yang ditentukan untuk memulai pelacakan. Secara default, WPP mencari string "WPP_INIT_TRACING."

Ini adalah opsi tingkat lanjut untuk pengguna yang menulis templat mereka sendiri.

Misalnya, di default.tpl:

IF FOUND WPP_INIT_TRACING
 INCLUDE um-init.tpl
ENDIF

Tentukan Nama Modul

-p: String

Menentukan nama ramah alternatif untuk GUID pesan dari penyedia pelacakan ini. Secara default, nama yang mudah diingat dari GUID pesan adalah nama direktori tempat penyedia pelacakan dibangun.

Nama yang mudah diingat dari GUID pesan muncul, secara default, dalam awalan pesan pelacakan yang diwakili oleh variabel, %1. Anda dapat menggunakan parameter ini untuk menambahkan string ke awalan yang membantu pengguna mengidentifikasi penyedia pelacakan, seperti nama yang mudah diingat dari penyedia pelacakan, nama modul yang menyertakan penyedia pelacakan, atau nama proyek yang diimplementasikan dengan membuat beberapa penyedia pelacakan. Informasi ini membantu pengguna untuk mengaitkan penyedia pelacakan terkait yang berada di file yang berbeda atau jalur yang berbeda.

Parameter -p memerlukan versi WPP yang disertakan dalam Windows Driver Kit (WDK) untuk Windows Vista dan versi WDK yang lebih baru. Parameter -p berfungsi pada Windows 2000 dan versi Windows yang lebih baru.

Contoh:

-p:TraceDrv
-p:AudioModule

Opsi File

Opsi Pelacakan WPP Opsi perintah TraceWPP Deskripsi

Sertakan Direktori Tambahan

-I Path1[;Jalur2]

Menentukan satu atau beberapa direktori untuk ditambahkan ke jalur penyertaan; pisahkan dengan titik koma jika lebih dari satu. Sama seperti -cfgdir.

Direktori Konfigurasi

-cfgdir: Path1[;Jalur2]

Menentukan lokasi file konfigurasi dan templat.

Path1 dan Path2 mewakili jalur yang sepenuhnya memenuhi syarat ke direktori. Anda dapat menentukan beberapa jalur. Defaultnya adalah direktori lokal.

Ekstensi File

-Ext:. ext1 Aku akan menemuinya.ext2]

Menentukan tipe file yang dikenal WPP sebagai file sumber. WPP mengabaikan file dengan ekstensi nama file yang berbeda.

Secara default, WPP hanya mengenali file .c, .c++, .cpp, dan .cxx.

Opsi ini memungkinkan Anda menggunakan pengaturan default untuk WPP tanpa harus menghapus atau mengganti nama file sumber daya yang tidak digunakan WPP, seperti file .rc dan .mc.

Misalnya, untuk menambahkan pelacakan ke file C++ dan file header (.h), gunakan perintah berikut:

-ext:.cpp. CPP.h.H

Selain itu, untuk memberikan file TMH untuk file C++ dan header nama yang berbeda, gunakan opsi -preserveext .

Pertahankan Ekstensi File

-preserveext: .ext1[.ext2]

Mempertahankan ekstensi nama file yang ditentukan saat membuat file TMH.

Secara default, file TMH untuk semua jenis file diberi nama file.tmh. Ini menyebabkan nama file berkonflik ketika Anda memiliki lebih dari satu file sumber dengan nama yang sama.

Misalnya, secara default, file TMH untuk file C (.c) dan file header (.h) akan diberi nama <filename.tmh>. Dengan menggunakan -preserveext:.c .h, file TMH diberi nama <filename.c.tmh> dan <filename.h.tmh>.

Direktori Output

-odir: jalur

Menentukan direktori untuk file output yang dibuat WPP.

Jalur adalah jalur yang sepenuhnya memenuhi syarat ke direktori. Defaultnya adalah direktori lokal.

Tentukan File Templat

-gen{ File.tpl }. ext

Untuk setiap file sumber yang diproses {}WPP dengan nama yang ditentukan antara kurung kurawal , buat file lain dengan ekstensi nama file yang ditentukan.

File.tpl mewakili file sumber. *.ext mewakili jenis file yang dibuat dan ekstensi nama filenya.

Anda dapat menentukan beberapa opsi gen .

Misalnya, -gen{um-default.tpl}.tmh berarti bahwa untuk setiap file um-default.tpl yang diproses WPP, file tersebut menghasilkan file um-default.tmh .

Pindai Data Konfigurasi

-scan:File

Mencari data konfigurasi, seperti jenis data kustom, dalam file yang bukan file konfigurasi, serta dalam defaultwpp.ini.

Tempatkan konfigurasi begin_wpp dan string end_wpp di sekitar data konfigurasi untuk mengidentifikasinya. Gunakan format yang sama untuk data konfigurasi seperti yang digunakan dalam defaultwpp.ini.

Jika Anda menambahkan data konfigurasi ke file konfigurasi kustom, gunakan parameter -ini .

File Konfigurasi Alternatif

-defwpp:path

Menentukan file konfigurasi alternatif. Wpp menggunakan file ini alih-alih file defaultwpp.ini.

File Konfigurasi Tambahan

-ini:Path

Menentukan file konfigurasi tambahan. WPP menggunakan file yang ditentukan selain file default, defaultwpp.ini.

Gunakan parameter ini saat Anda telah membuat file konfigurasi baru untuk menyimpan data konfigurasi untuk pelacakan. Jika Anda telah menambahkan data konfigurasi ke jenis file lain, seperti file sumber atau header, gunakan parameter -scan .

Proses Build WPP

Jika WPP diaktifkan untuk aplikasi driver atau mode pengguna, membangun driver atau aplikasi memanggil praprosem WPP sebelum file driver atau aplikasi dikompilasi.

Proses build WPP menyelesaikan langkah-langkah berikut:

  1. Praprosesor WPP memproses makro WPP di setiap file sumber dan membuat file header pesan pelacakan untuk setiap file sumber. Kode sumber tidak dimodifikasi secara langsung.

  2. Setelah praprosesor WPP membuat file header pesan pelacakan, praprosesor C memproses makro WPP bawaan dalam file header pesan pelacakan dengan cara normal.