WPP 軟體追蹤
本節說明如何使用 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 驅動程式
- 用於記錄追蹤的 Inflight Trace Recorder
- 在追蹤提供者中使用 WPP 軟體追蹤
- 將 WPP 宏新增至追蹤提供者
- WPP 預處理器
- WDF 驅動程式的追蹤和診斷能力
注意 Windows (ETW 的事件追蹤) 和 WPP 支援大部分的核心模式和使用者模式驅動程式類型。 不過,ETW 和 WPP 會使用不適用於特定類型驅動程式的類型,例如迷你埠驅動程式。 若要判斷是否支援特定驅動程式類型,請將基本 WPP 宏新增至驅動程式,例如 WPP_INIT_TRACING 和 WPP_CLEANUP。 如果程式碼未編譯,因為未定義所使用的類型,則 ETW 和 WPP 不支援驅動程式類型。
如需 ETW 的詳細資訊,請參閱 Windows 事件追蹤。
注意 WPP 追蹤提供者一次只能由一個追蹤會話啟用。 如需詳細資訊,請參閱 WPP 提供者 。
如需支援 WPP 軟體追蹤之 WMI 程式庫支援常式的資訊,請參閱: