使用 UMDF 消費者入門

本節說明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 回呼和方法的摘要。 在少數情況下,方法的結構成員或參數只會套用至一個架構或其他架構。 檔描述對應參考頁面上的這些差異。