影片:偵錯 UMDF 驅動程式

本主題包含 Abhishek Ram 的一系列影片,示範如何偵錯 User-Mode Driver Framework (UMDF) 驅動程式。

觀看影片之後,您將熟悉 UMDF 偵錯工具延伸模組,並知道如何在基本偵錯案例中使用它們。

雖然影片示範在舊版 Windows 上對 UMDF 第 1 版驅動程式進行偵錯,但您仍然可以使用與目前 Windows 版本上執行的 UMDF 第 2 版驅動程式相同的技術。

注意 這段影片描述 Wudfext.dll 中的偵錯工具擴充命令,您只能用來偵錯 UMDF 第 1 版驅動程式。 若要偵錯從 UMDF 2.0 版開始的 UMDF 驅動程式,您必須改用 Wdfkd.dll 偵錯工具擴充程式庫。 Wdfkd.dll 中所有擴充功能在 Wudfext.dll 中都有對等專案。 如需詳細資訊,請參閱 Wudfext.dll中的偵錯工具延伸模組摘要 Wdfkd.dll中的偵錯工具延伸模組摘要

如需偵錯 UMDF 的詳細資訊,請參閱 偵錯 WDF 驅動程式中所列的主題。

必要條件

若要充分利用此內容,您應該具備 UMDF 和 Windows 偵錯工具的實用知識。 由於每個會話都是以上一個會話為基礎,因此建議您依照列出的順序來檢視這些示範。

基本概念和設定

討論如何使用 WDK 範例和 OSR USB-FX2 學習套件。

在此影片中,您將瞭解 UMDF 偵錯基本概念,包括準備測試電腦、使用 Devcon 工具來安裝 UMDF Echo 範例驅動程式、使用 WdfVerifier 來識別裝載指定 UMDF 驅動程式的主機進程,以及使用 WdfVerifier 將主機進程附加至偵錯工具,以對初始化程式碼進行偵錯。 這段影片也會示範如何在工作管理員中列出執行中的主機進程,以及在裝置管理員中檢視執行中的驅動程式。

使用偵錯工具延伸來檢查物件階層

在此部分中,您將瞭解如何開始偵錯 UMDF 驅動程式。 影片說明如何設定 OSR USB-FX2 驅動程式範例和應用程式範例,讓三個應用程式實例將讀取、寫入和裝置 I/O 控制要求傳送至驅動程式。 您會看到要求會先流向反映器,然後再流向使用者模式驅動程式主機程式的方式。 這段影片介紹 FX2 驅動程式範例的 WDF 物件階層,並討論如何使用下列 UMDF 偵錯工具延伸模組來周遊 UMDF 物件階層:

針對 UMDF 2,請參閱 Wdfkd.dll中的偵錯工具延伸模組摘要 ,例如 !wdfkd.wdfumdevstacks

存取架構 USB 物件

在這裡,您將瞭解如何檢查驅動程式的架構 USB 物件。 若要這樣做,您將流覽 WDF 物件階層,以連線到 USB 管道物件、USB 介面物件和 USB I/O 目標物件。

I/O 要求和佇列

在此影片中,您將使用偵錯工具來檢查驅動程式的架構 I/O 要求物件和架構佇列物件。

檔案物件和回呼物件

在此部分中,您將瞭解如何檢查架構檔案物件,以及驅動程式的回呼物件。

追蹤 UMDF 驅動程式所傳送的 I/O 要求

在這裡,您將瞭解如何使用應用程式驗證器工具來協助您進行偵錯。 您也將瞭解如何偵錯驅動程式初始化程式碼,以及如何追蹤 UMDF 驅動程式傳送至下列核心堆疊的要求。

驅動程式未完成 I/O 要求

在最後一個影片中,您將調查 UMDF 驅動程式未完成收到要求的情況,並瞭解架構的物件追蹤和參考追蹤功能。