Microsoft Windows 驅動程式套件 (WDK) 包含一組用於軟體追蹤的應用程式和命令列工具。 這些工具的設計目的是要支援 Windows 的事件追蹤 (ETW) ,並補充 Windows 中包含的追蹤工具。
追蹤工具有哪些?
這些工具包括配置、啟動、更新及停止追蹤會話的 追蹤控制器 ,以及接收階段作業期間產生的追蹤訊息的 追蹤取用者 ,並將二進位資料轉換成檔案或顯示的人類可讀格式。
這些工具支援各種 追蹤提供者,包括使用者模式應用程式和核心模式驅動程式,這些驅動程式會使用 WPP 軟體追蹤 或 Windows 事件追蹤 (ETW) 來檢測軟體追蹤。 如需檢測程式碼的兩種方法的比較,請參閱 何時使用 WPP 軟體追蹤和 Windows 事件追蹤 (ETW)。
這些工具也可以存取內建於 Windows 中的保留 追蹤會話 ,例如 全域記錄器追蹤會話 / NT 核心記錄器追蹤會話。
其中一些工具位於 Windows 驅動程式套件 (WDK) 的 tools\<Platform> 子目錄中,其中 <Platform> 是 x86 或 x64。 其他工具會隨附於 Windows 中,或位於 WDK 的 bin\<Platform> 子目錄中。
何時應該使用 WPP 軟體追蹤或 Windows 事件追蹤 (ETW) API?
如果您有興趣主要收集追蹤資料以進行開發和偵錯,請使用 WPP 軟體追蹤 。 使用 Windows 事件追蹤 (ETW) 進行其他類型的追蹤。
| WPP 軟體追蹤 | 顯式/追蹤日誌 ETW |
|---|---|
| 支援 Windows 2000 和更新版本。 | 支援 Windows Vista 和更新版本。 |
| 開發和除錯過程中的事件追蹤。 主要針對內部開發人員。 | 用於管理、操作、分析和調試目的的跟踪事件。 |
| 需要 TMF 檔案來解碼事件,這些事件是從記錄二進位檔的 PDB 擷取的。 | 用於解碼事件的中繼資料包含在本機二進位檔或事件承載中。 |
| 每個追蹤提供者只能有一個作用中會話。 | 事件可以多重分發到多個使用者。 |
| 訊息字串無法本地化。 | 字串可以本地化。 |
| 提供者安全性僅限於不共用啟用和解碼事件所需的控制 GUID 或 TMF 檔案。 | 提供者可以套用 ACL 來限制哪些使用者可以從中收集事件。 |
如需使用 Windows 軟體追蹤前置處理器 (WPP) 宏將軟體追蹤新增至驅動程式或應用程式的資訊,請參閱 WPP 軟體追蹤。
如需針對驅動程式使用核心模式 ETW API 的相關資訊,請參閱 Windows 事件追蹤 (ETW)。
如需使用 Windows 驅動程式模型 (WDM) 的 Windows Management Instrumentation (WMI) 延伸模組,將軟體追蹤新增至任何驅動程式的相關資訊,請參閱 WMI 事件追蹤。
便條 ETW 和 WPP 支援大部分類型的核心模式驅動程式和使用者模式應用程式。 不過,ETW 和 WPP 會使用不適用於特定類型驅動程式的類型,例如迷你埠驅動程式。 若要判斷是否支援特定驅動程式類型,請將基本 WPP 宏新增至驅動程式,例如 WPP_INIT_TRACING 和 WPP_CLEANUP。 如果程式碼未編譯,因為未定義使用的類型,則 ETW 和 WPP 無法支援驅動程式類型。
本節內容
本節從對軟體追蹤工具的調查開始,討論這些工具的基礎概念,然後提供 WDK 中軟體追蹤工具的文件。
本節包含:
如需 事件追蹤的概念資訊,請參閱 Microsoft Windows SDK 檔。