開發適用於 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 中。
- 連結至 stub 連結庫 (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的行為、它如何與客戶端驅動程序互動,以及客戶端驅動程式預期要實作的功能。