本節介紹 USB 驅動程式開發概念和工具。 本節適用於剛開始進行驅動程式開發的新手開發人員,這些開發人員希望為Microsoft未提供內建驅動程式的USB裝置設計驅動程式。 本檔中這些驅動程式稱為 USB 用戶端驅動程式 。 本節中的主題描述高階 USB 概念,並提供執行 USB 用戶端驅動程式一般工作的逐步指示。 如需這些概念的詳細資訊,請參閱 USB 檔中的 USB 規格。
驅動程式開發人員必須具備C++程式設計語言的程式代碼撰寫體驗,並瞭解 函式指標、 回呼函式和 事件處理程式的概念。 如果根據 User-Mode Driver Framework 撰寫驅動程式,開發人員必須熟悉 C++ 和 COM。
USB 用戶端驅動程式開發人員的學習路徑
讀取 USB 規格 3.2。
- 瞭解架構的產業規格和不同元件(裝置、主機控制器和中樞)。 請務必了解數據流模型、主機和裝置彼此通訊的方式,以及裝置預期的要求格式。
取得測試 USB 裝置。
擁有USB裝置及其硬體規格。 此規格描述裝置功能和支援的廠商命令。 使用規格來判斷設備驅動器的功能和相關設計決策。
如果 USB 驅動程式開發不熟悉,請擁有 OSR USB FX2 學習套件 。 此套件最適合研究本檔集中包含的USB範例。
擁有Microsoft USB 測試工具 (MUTT) 裝置。 MUTT 硬體可從 JJG 技術購買。 裝置未安裝韌體。 若要安裝韌體,請下載 MUTT 軟體套件。 如需詳細資訊,請參閱套件隨附的檔。
-
- 藉由讀取組態描述元、每個支援的替代設定介面描述元及其端點描述元,來描述您的裝置功能。 開發人員可以使用 USBView 來流覽所有 USB 控制器和與其連線的 USB 裝置,並檢查裝置設定。
-
- 根據目標裝置的設計,判斷驅動程式是否應該是自定義驅動程式,或使用其中一個Microsoft提供的驅動程式。 選擇最佳的驅動程式模型,並描述每個模型所支援的功能。
檢閱Microsoft提供的USB驅動程式堆疊和驅動程序開發概念。
- Windows 中的 USB 主機端驅動程式。
- 所有驅動程式開發人員的概念。
- 所有USB開發人員的概念。
- 裝置節點和裝置堆疊。
- 使用 Windows Driver Foundation 開發驅動程式: 佩妮·奧里克和蓋伊·史密斯的參考書。
- USB 驅動程式範例。
- 了解驅動程式在 Windows作系統中運作方式的基本概念。 瞭解基本概念將有助於做出適當的設計決策,並簡化開發程式。
- 區分使用者模式和核心模式驅動程序架構模型。
- 了解驅動程式載入,以及 Windows 如何在裝置樹狀結構和裝置節點中組織隨插即用 (PnP) 裝置。 開發人員也應該瞭解 PnP 管理員如何建置裝置堆疊,以及驅動程式及其裝置物件放置於裝置堆疊的位置。
準備開發和偵錯環境。
- 安裝最新的 Windows 驅動程式套件 (WDK)。
- 安裝 Microsoft Visual Studio。
- 準備偵錯設定。
- 請確定 USB 用戶端驅動程式所需的標頭檔和函式庫 可供使用。
- 如果要透過乙太網路來在主機和目標電腦上進行內核模式驅動程式偵錯,則必須設定 1394 纜線、USB 2.0 或 3.0 偵錯纜線,或設定 Null 模組化纜線。
- 如果要撰寫使用者模式驅動程式,可以在 Microsoft Visual Studio 環境中使用使用者模式調試工具。 開發人員應該熟悉 如何附加至進程,或在調試程式下啟動進程。
撰寫您的第一個驅動程式。
- 如何撰寫您的第一個 USB 用戶端驅動程式(KMDF)。
- 如何撰寫您的第一個 USB 用戶端驅動程式 (UMDF)。
- 使用 Visual Studio 2012 隨附的 USB 範本,撰寫、建置及安裝您的第一個 USB 用戶端驅動程式。 開發人員應該能夠描述架構驅動程式、裝置和佇列物件,並了解架構如何與您的驅動程序通訊。
傳送 USB 控制件傳輸要求來擴充驅動程式。
- 將標準控制要求和廠商命令傳送至您的裝置。 如需詳細資訊,請參閱 如何傳送 USB 控件傳輸。
擴充驅動程式以使用WDF USB I/O目標對象來執行 USB資料傳輸。
- 擴充驅動程式以執行一般工作,如 USB用戶端驅動程式的一般工作中所述。
USB 社群資源
Microsoft Windows USB Core 小組部落格
查看Microsoft USB 小組所撰寫的文章。 部落格著重於 Windows USB 驅動程式堆疊,其適用於 Windows 計算機中找到的各種 USB 主機控制器和 USB 中樞。 適用於 USB 用戶端驅動程式開發人員和 USB 硬體設計工具的實用資源,可瞭解驅動程式堆疊實作、解決常見問題,以及說明如何使用工具來收集追蹤和記錄檔。
-
OSR Online 為核心模式驅動程式開發人員所管理的討論清單。
-
Windows 驅動程式套件,確定您的產品可透過 Windows 硬體實驗室套件與 Windows 可靠且相容,瞭解 Windows 驅動程式範例。