USB 特定的 UMDF 1.x 介面
警告
UMDF 2 是最新版的 UMDF,並取代 UMDF 1。 所有新的UMDF驅動程式都應該使用UMDF 2撰寫。 未將新功能新增至 UMDF 1,而且較新版本的 Windows 10 上對 UMDF 1 的支援有限。 通用 Windows 驅動程式必須使用 UMDF 2。
封存的 UMDF 1 範例可在 Windows 11 版本 22H2 - 2022 年 5 月驅動程式範例更新中找到。
如需詳細資訊,請參閱 開始使用UMDF。
USB 裝置可以有一或多個設定。 每個設定都可以有一或多個介面。 每個介面都會與一或多個替代設定相關聯,而每個替代設定都會定義一或多個端點。 端點代表裝置硬體上的緩衝區。
管道是主機控制器與目前替代設定中端點之間的連線軟體抽象概念。 管道可以是 I/O 的目標,而且由 IWDFUsbTargetPipe 介面在 UMDF 中公開。
USB 特定的 UMDF 介面建置在 WinUSB 架構之上。 根據設計,WinUSB 只允許存取多個設定裝置的第一個設定。 因此,WinUSB 介面不會公開提交選取組態要求的能力。 因此,UMDF 中的 I/O 目標功能不支持選取第一個以外的任何裝置設定。
USB 特定的 UMDF 介面具有類似於一般 USB 模型的物件階層。 UMDF 驅動程式會建立目標裝置物件,此物件是由 IWDFUsbTargetDevice 介面公開。 驅動程式接著可以使用 IWDFUsbTargetDevice 的方法來存取 IWDFUsbInterface 實例公開的 USB 介面。 驅動程式可以呼叫 IWDFUsbInterface 方法來操作設定和端點。
下表顯示 USB 特定的 UMDF 介面階層:
USB 特定的 UMDF 介面 | 來自 |
---|---|
IWDFUsbTargetDevice | IWDFIoTarget |
IWDFUsbInterface | IWDFObject |
IWDFUsbTargetPipe | IWDFIoTarget |
IWDFUsbTargetDevice 和 IWDFUsbTargetPipe 介面衍生自 IWDFIoTarget 介面,因此會公開 I/O 目標物件。 IWDFUsbInterface 介面不會衍生自 IWDFIoTarget (IWDFUsbInterface 衍生自 IWDFObject 介面),因此不會公開 I/O 目標物件。 傳送至探索及操作介面詳細數據的任何 I/O,會傳送至目標裝置。
如需撰寫簡單 UMDF 型 USB 用戶端驅動程式的逐步指示,請參閱如何撰寫您的第一個 USB 用戶端驅動程式 (UMDF)。
若要瞭解 UMDF 型 USB 用戶端驅動程式所需的原始碼,請參閱瞭解 USB 用戶端驅動程式程式代碼結構 (UMDF)。