本節說明如何使用 Windows 軟體追蹤預處理器 (WPP) 來追蹤軟體元件 (追蹤提供者) 的作業。 追蹤提供者可以是下列其中一項:
內核模式驅動程式。
使用者模式驅動程式、應用程式或動態連結庫 (DLL)。
WPP 軟體追蹤透過增加簡化追蹤提供者操作的方法,來輔助和增強WMI 事件追蹤。 這是追蹤提供者記錄即時二進位訊息的有效機制。 記錄的訊息可以隨後轉換成追蹤提供者運作過程的人類可讀追蹤記錄。
| 何時應該使用 WPP 軟體追蹤? |
|---|
WPP 軟體追蹤主要用於在開發期間偵錯程序代碼。 如果您想要發佈可供對結構化 ETW 事件感興趣的應用程式使用的事件,在開發過程中除了進行追蹤,還請使用以下工具:
|
使用 WPP 軟體追蹤記錄訊息類似於使用 Windows 事件記錄服務。 驅動程式會在記錄檔中記錄訊息標識碼和未格式化的二進位數據。 之後,後處理器會將記錄檔中的資訊轉換成人類可讀取的格式。 不過,WPP 軟體追蹤支援比事件記錄服務所支援更有能力且更有彈性的訊息格式。 例如,WPP 軟體追蹤具有IP位址、GUID、系統標識碼、時間戳和其他實用數據類型的內建支援。 此外,使用者可以新增與其應用程式相關的自定義數據類型。
WPP 軟體追蹤程式的概觀
將 WPP 軟體追蹤新增至驅動程式或應用程式的基本過程包括下列步驟。 如果您使用 WDK 中提供的其中一個 Visual Studio 範本來建立 WDF 驅動程式,則大部分工作都是為您完成的。
定義可唯一識別驅動程式或應用程式的控制項 GUID 做為 追蹤提供者。 提供者會在其 WPP_CONTROL_GUIDS 巨集的定義以及 Tracelog 或其他 追蹤控制器所使用的相關控件檔案中指定這個 GUID。
將必要的 WPP 相關 C 預處理器指令和 WPP 巨集呼叫新增至供應者的來源檔案,如 將 WPP 軟體追蹤新增至 Windows 驅動程式 和 WPP 軟體追蹤參考中所述。
修改 Visual Studio 專案以執行 WPP 預處理器並建置驅動程式,如將 WPP 軟體追蹤新增至 Windows 驅動程式 的步驟 6 中所述。 您可以參考 WPP 預處理器 以取得更多建置時間選項。
安裝驅動程式或元件。 啟動追蹤會話並記錄追蹤訊息。 使用 軟體追蹤的工具,例如 TraceView、Tracelog、 Tracefmt 和 Tracepdb 來設定、啟動和停止追蹤會話,以及顯示和篩選追蹤訊息。 這些工具包含在 Windows 驅動程式套件 (WDK) 中。
本節中
- 將 WPP 軟體追蹤新增至 Windows 驅動程式
- 用於記錄追蹤的即時追蹤錄製器
- 在追蹤提供者中使用 WPP 軟體追蹤技術
- 將 WPP 宏新增到追蹤提供者中
- WPP 預處理器
- WDF 驅動程式的追蹤和可診斷性
注意 Windows 事件追蹤 (ETW) 和 WPP 支援大部分類型的內核模式和使用者模式驅動程式。 不過,ETW 和 WPP 會使用不適用於特定類型驅動程式的類型,例如迷你埠驅動程式。 若要判斷是否支援特定驅動程式類型,請將基本 WPP 宏新增至驅動程式,例如 WPP_INIT_TRACING 和 WPP_CLEANUP。 如果程式代碼未編譯,因為未定義所使用的類型,ETW 和 WPP 就無法支援驅動程式類型。
如需 ETW 的詳細資訊,請參閱 Windows 事件追蹤。
注意 WPP 追蹤提供者一次只能由一個追蹤會話啟用。 如需詳細資訊,請參閱 WPP 提供者 。
如需 WMI 程式庫支援 WPP 軟體追蹤的例程資訊,請參閱: