本節說明 User-Mode Driver Framework (UMDF),並詳細說明 UMDF 第 1 版和 2 版之間的差異。 它也提供有關UMDF的高階架構資訊。 使用本節來判斷 UMDF 驅動程式是否適合您的需求,並決定要使用的 UMDF 版本。
Windows 驅動程序架構 (WDF) 包含 UMDF,這是建立使用者模式驅動程式的架構。 如同 Kernel-Mode Driver Framework (KMDF),UMDF 提供 WDM 的抽象層、處理大部分即插即用 (PnP) 和電源管理功能,並允許驅動程式選擇加入特定功能和事件處理。
在 Windows 8.1 及更新版本中,UMDF 有兩個主要版本 1 和 2。 UMDF 1.11 版(一點十一)是最新版的 UMDF 第 1 版,也是 UMDF 2 問世前的最終版本。 如需查看完整版本資訊和作業系統相關性的數據表,請參閱 UMDF 版本歷程記錄。
使用 UMDF 第 1 版撰寫驅動程式需要使用 COM 程式設計模型來撰寫C++程序代碼。 雖然 UMDF 第 2 版是以與 KMDF 相同的概念性驅動程式程式設計模型為基礎,但 UMDF 1 會使用不同的元件、設備驅動器介面 (DIS) 和數據結構來實作模型。 所有新的UMDF驅動程式都應該使用UMDF 2撰寫。 未將新功能新增至 UMDF 1,而且較新版本的 Windows 10 和 Windows 11 上,UMDF 1 的支援有限。
相反地,從 UMDF 第 2 版開始,您可以使用 C 程式設計語言撰寫 UMDF 驅動程式,以呼叫 KMDF 驅動程式可用的許多方法。 UMDF 第 2 版和 KMDF 之間共用的所有介面都有相同的名稱、參數和結構定義。 如果您的驅動程式只使用共用功能,或使用一個架構中僅支援之呼叫的條件式巨集,您可以撰寫可使用 UMDF 或 KMDF 編譯的單一驅動程式。 如需詳細資訊,請參閱 如何從 KMDF 驅動程式產生 UMDF 驅動程式。
雖然UMDF 2與 KMDF 之間有顯著的共通性,但仍有少量的功能,只能在一個架構或其他架構中使用。 如需詳細資訊,請參閱 比較 UMDF 2 功能與 KMDF。 如需查看所有 UMDF 2 和 KMDF 的回呼函式與方法及其應用的框架清單,請參閱 WDF 回呼和方法的摘要。 在少數情況下,方法的結構成員或參數只會套用至一個架構或其他架構。 文件說明對應參考頁面上的這些差異。