共用方式為


WinUSB 架構和模組

WinUSB 包含兩個主要元件:

  • Winusb.sys是一種內核模式驅動程式,可安裝為篩選或函式驅動程式,高於USB裝置核心模式裝置堆疊中的通訊協定驅動程式。
  • Winusb.dll是公開 WinUSB 函式的使用者模式 DLL。 當應用程式安裝為裝置的函式驅動程式時,可以使用這些函式與Winusb.sys通訊。

對於不需要自定義函式驅動程式的裝置,Winusb.sys可以安裝在裝置的核心模式堆疊中作為函式驅動程式。 然後,使用者模式進程可以使用一組裝置 I/O 控制要求或呼叫 WinUSB 函式,與Winusb.sys通訊。

下圖顯示包含數個Winusb.sys實例的 USB 驅動程式堆疊。

WinUSB 驅動程式和裝置物件堆疊的圖表,除以使用者和核心模式。

上圖顯示實作三個裝置介面類別的 WinUSB 設定範例,每個類別都有單一已註冊的裝置介面:

  • Winusb.sys實例 1 會註冊裝置介面 A,其支援使用者模式驅動程式(Usboem.dll)。
  • Winusb.sys實例 2 會註冊裝置介面 B,其支援使用系統服務 (SVCHOST) 與Winusb.dll通訊的掃描器 (Usbscan.exe) 的使用者模式驅動程式。
  • Winusb.sys實例 3 會註冊裝置介面 C,其支援韌體更新公用程式 (Usbfw.exe)。

只有一個載入的實例Winusb.sys。 實體裝置物件 (PDO) 可以代表非複合裝置(圖表中的實例 1),也可以代表複合裝置上的介面或介面集合(實例 2 和 3)。 針對 USB 無線行動通訊裝置類別 (WMCDC) 裝置,PDO 甚至可以代表數個介面集合。 (如需 WMCDC 裝置 PDO 的詳細資訊,請參閱 支援無線行動通訊裝置類別

任何使用者模式應用程式都可以載入 WinUSB 動態連結庫(Winusb.dll),並呼叫此模塊公開的 WinUSB 函式,來與 USB 堆棧通訊。