開發適用於 USB 函式控制器的 Windows 驅動程式概觀
在 Windows 作業系統中,本文描述開發通用序列總線(USB)函式控制器驅動程式,以便與 Microsoft 提供的 USB 函式控制器擴充功能(UFX)進行通訊的支援。
開發工具和Microsoft提供的二進位檔
Windows 驅動程式套件 (WDK) 包含驅動程式開發所需的資源,例如標頭、連結庫、工具和範例。
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 驅動程式堆疊:
熟悉UFX物件和控制代碼
UFX 會擴充 WDF 物件功能,以定義自己的 USB 特定 UCX 物件。 如需 WDF 對象的詳細資訊,請參閱 Framework 物件簡介。
針對佇列要求,UFX 會使用專用的 USB 物件。 如需取得更多資訊,請參閱 USB 函式用戶端驅動程式所使用的 UFX 物件和控制代碼。
撰寫函式控制器用戶端驅動程式
瞭解UFX的行為、它如何與客戶端驅動程序互動,以及客戶端驅動程式預期要實作的功能。