適用於開發人員的 WinUSB 簡介
身為驅動程式開發人員,瞭解 WinUSB (Windows USB) 可以大幅簡化您的開發程式,尤其是在使用 USB 裝置時。 WinUSB 是 Windows 隨附的一般驅動程式,可讓您與 USB 裝置通訊,而不需要撰寫自定義驅動程式。 這可節省您的時間、降低複雜度,並確保不同 Windows 版本的相容性。
使用 WinUSB 的主要優點
簡化的開發:
- 方便使用:WinUSB 會抽象化 USB 通訊所涉及的許多複雜度,讓您更輕鬆地與 USB 裝置互動。
- 不需要自定義驅動程式:對於許多USB裝置,可以直接使用WinUSB,而不需要撰寫和維護自定義驅動程式。
跨平臺相容性:
- 標準化介面:WinUSB 提供標準化的 USB 通訊介面,有助於確保不同 Windows 版本的相容性。
時間和成本效益:
- 縮短開發時間:使用 WinUSB 可大幅縮短開發和測試 USB 驅動程式所需的時間。
- 較低的維護成本:由於 WinUSB 是由Microsoft維護,因此您可以依賴它進行更新和支援,進而降低長期維護成本。
存取 USB 功能:
- 完整的 USB 功能:WinUSB 支援各種不同的 USB 功能,包括大量傳輸、控制傳輸、中斷傳輸和不時傳輸。
您可以使用 WinUSB 完成的工作
裝置通訊:
- 數據傳輸:使用大量、控制、中斷或異時傳輸來回傳送和接收USB裝置的數據。
- 控制要求:傳送控制要求來設定裝置或擷取資訊。
裝置設定:
- 設定組態:選取組態、介面和替代設定來設定USB裝置。
- 端點管理:管理數據傳輸的端點。
裝置列舉:
- 裝置識別:列舉並識別連線到系統的USB裝置。
- 描述項擷取:擷取裝置描述元、組態描述元、介面描述元和端點描述元。
自訂應用程式:
- 使用者模式應用程式:開發使用 WinUSB API 與 USB 裝置通訊的使用者模式應用程式。
- 韌體更新:實作USB裝置的韌體更新機制。
測試和偵錯:
- 原型設計:快速建立 USB 裝置通訊的原型,以測試硬體功能。
- 偵錯:使用 WinUSB 來偵錯主機與 USB 裝置之間的通訊問題。
WinUSB 的元件
WinUSB 包括:
- 內核模式驅動程式 (winusb.sys)
- 使用者模式動態連結庫 (winusb.dll) 會公開 winusb.h 中所述的 WinUSB 函式。 您可以使用這些功能來管理具有使用者模式軟體的 USB 裝置。
根據預設,winusb.sys會以上層篩選驅動程式的形式安裝在裝置的核心模式堆疊中。 應用程式會與裝置的 UMDF 函式驅動程式通訊,以發出讀取、寫入或裝置 I/O 控制要求。 在此設定中,winusb.sys可作為裝置堆疊的 隨插即用 和電源擁有者。 您也可以將winusb.sys安裝為 USB 裝置的功能驅動程式。
開始使用 WinUSB
本節包含下列資訊:
- 選取裝置的正確驅動程式
- 使用 WinUSB 與 USB 裝置通訊
- 將winusb.sys安裝為USB裝置的功能驅動程式
您也會找到詳細的程式代碼範例,示範應用程式和 USB 裝置的通訊方式。
注意
WinUSB 支援從 Windows 8 開始的隨機傳輸。