共用方式為


開發適用於 USB 函式控制器的 Windows 驅動程式概觀

在 Windows 作業系統中,本文描述開發通用序列總線(USB)函式控制器驅動程式,以便與 Microsoft 提供的 USB 函式控制器擴充功能(UFX)進行通訊的支援。

開發工具和Microsoft提供的二進位檔

Windows 驅動程式套件 (WDK) 包含驅動程式開發所需的資源,例如標頭、連結庫、工具和範例。

下載適用於 Windows 的套件和工具

Windows 提供內建 USB 控制器驅動程式,例如用於 Synopsys IP 控制器硬體的 UfxSynopsys.sys。 它們通常需要平臺層級變更和驗證,這些變更通常是在啟動平臺時由硬體合作夥伴或 OEM 執行。 此啟動過程可能包括與 ACPI 整合,以通知系統驅動程式有 USB 連接/斷開事件,並使用 Microsoft 提供的 HLK 測試進行額外的驗證。 若要撰寫您自己的控制器驅動程式,您需要:

  • UFX(Ufx01000.sys)被載入為 FDO。 此驅動程式包含在 Windows 中。
  • 連結至樹狀庫(Ufx01000.lib)。 存根程式庫位於 WDK 中。 程式庫會將函式控制器驅動程式所進行的呼叫轉譯後,傳遞到 UFX。
  • 包含 WDK 中提供的 Ufxclient.h。

若要從使用者模式傳送要求,您需要:

  • GenericUSBFn.sys 載入為 USB 功能類別驅動程式。 此驅動程式包含在 Windows 中。
  • 包含 WDK 中提供的 Genericusbfnioctl.h。

若要從 USB 類別驅動程式傳送要求,您需要:

  • UFX (Ufx01000.sys) 載入為 FDO。 此驅動程式包含在 Windows 中。
  • 包含 WDK 中提供的 Usbfnioctl.h。

若要撰寫處理透過專屬充電器充電的篩選驅動程式,您需要:

  • UfxChipidea.sys 或 Ufxsynopsys.sys 載入為 UFX 的用戶端驅動程式。
  • 包含 WDK 中提供的 Ufxproprietarycharger.h。

UFX 的架構

熟悉 Microsoft 提供的 USB 驅動程式堆疊:

Windows 中的 USB 裝置端驅動程式

熟悉UFX物件和控制代碼

UFX 會擴充 WDF 物件功能,以定義自己的 USB 特定 UCX 物件。 如需 WDF 對象的詳細資訊,請參閱 Framework 物件簡介

針對佇列要求,UFX 會使用專用的 USB 物件。 如需取得更多資訊,請參閱 USB 函式用戶端驅動程式所使用的 UFX 物件和控制代碼

撰寫函式控制器用戶端驅動程式

瞭解UFX的行為、它如何與客戶端驅動程序互動,以及客戶端驅動程式預期要實作的功能。

函式控制器客戶端驅動程式的任務

程序設計參考區段

USB 功能類驅動程式對 UFX 程式設計參考

USB 函式控制器用戶端驅動程式程式設計參考

USB 篩選驅動程式,以支援專屬充電器