WPP 軟體追蹤

本節說明如何使用 Windows 軟體追蹤預處理器 (WPP) 來追蹤軟體元件 (追蹤提供者) 的作業。 追蹤提供者可以是下列其中一項:

  • 核心模式驅動程式。

  • 使用者模式驅動程式、應用程式或動態連結程式庫 (DLL) 。

WPP 軟體追蹤可藉由新增方法來簡化追蹤提供者的作業,來補充及增強 WMI 事件追蹤 。 這是追蹤提供者記錄即時二進位訊息的有效機制。 記錄的訊息隨後可以轉換成追蹤提供者作業的人類可讀取追蹤。

何時應該使用 WPP 軟體追蹤?

WPP 軟體追蹤主要用於在開發期間偵錯程式碼。 如果您想要發佈應用程式除了在開發期間追蹤之外,還想要發佈對結構化 ETW 事件所取用的事件,請使用下列專案:

如需詳細資訊,請參閱 何時應該使用 WPP 軟體追蹤或 Windows (ETW 事件追蹤) API?

使用 WPP 軟體追蹤記錄訊息類似于使用 Windows 事件記錄服務。 驅動程式會在記錄檔中記錄訊息識別碼和未格式化的二進位資料。 接著,後處理器會將記錄檔中的資訊轉換成人類可讀取的格式。 不過,WPP 軟體追蹤支援比事件記錄服務所支援且更具彈性的訊息格式。 例如,WPP 軟體追蹤具有 IP 位址、GUID、系統識別碼、時間戳記和其他實用資料類型的內建支援。 此外,使用者可以新增與其應用程式相關的自訂資料類型。

WPP 軟體追蹤程式的概觀

將 WPP 軟體追蹤新增至驅動程式或應用程式的基本套裝程式括下列步驟。 如果您使用 WDK 中提供的其中一個 Visual Studio 範本來建立 WDF 驅動程式,則大部分的工作都是為您完成。

本節內容

注意 Windows (ETW 的事件追蹤) 和 WPP 支援大部分的核心模式和使用者模式驅動程式類型。 不過,ETW 和 WPP 會使用不適用於特定類型驅動程式的類型,例如迷你埠驅動程式。 若要判斷是否支援特定驅動程式類型,請將基本 WPP 宏新增至驅動程式,例如 WPP_INIT_TRACINGWPP_CLEANUP。 如果程式碼未編譯,因為未定義所使用的類型,則 ETW 和 WPP 不支援驅動程式類型。

如需 ETW 的詳細資訊,請參閱 Windows 事件追蹤

注意 WPP 追蹤提供者一次只能由一個追蹤會話啟用。 如需詳細資訊,請參閱 WPP 提供者

如需支援 WPP 軟體追蹤之 WMI 程式庫支援常式的資訊,請參閱:

WmiQueryTraceInformation

WmiTraceMessage

WmiTraceMessageVa