此頁面說明 DCH 相容驅動程式套件的設計原則和最佳做法。
DCH 設計原則
有三個設計原則可考慮讓驅動程式套件符合 DCH 規範:
宣告式 (D):僅使用宣告式 INF 指示詞來安裝驅動程式套件。 請勿包含共同安裝程式或 RegisterDll 函式。
元件化 (C):版本特定、OEM 特定,以及驅動程式套件的選擇性自定義,與基底驅動程式套件不同。 因此,僅提供核心裝置功能的基底驅動程式套件可以獨立於自訂項目進行目標設定、分階段發佈以及維護更新。
硬體支援應用程式 (H):與驅動程式套件相關聯的任何使用者介面 (UI) 元件都必須封裝為硬體支援應用程式 (HSA) 或預安裝於 OEM 裝置上。 HSA 是與驅動程式套件配對的選擇性裝置特定應用程式。 應用程式可以是 通用 Windows 平臺(UWP) 或 桌面橋接應用程式。 您必須透過 Microsoft 市集散發及更新 HSA。 如需詳細資訊,請參閱 硬體支援應用程式 (HSA):驅動程式開發人員的步驟 和 硬體支援應用程式 (HSA):應用程式開發人員的步驟。
縮寫 「DCH」 是指上面所列的原則。 請參閱 DCH-Compliant 驅動程式套件範例 頁面,以了解驅動程式範例如何套用 DCH 設計原則。
概觀
符合 DCH 規範的驅動程式套件包含 INF 檔案和二進位檔,可在 以通用 Windows 平臺 (UWP) 為基礎的 Windows 版本上安裝和執行。 它們也會在共用一組通用介面的其他 Windows 10 和 11 版本上安裝和執行。
DCH 相容的驅動程式二進位檔可以使用 KMDF、 UMDF 2 或 Windows 驅動程式模型 (WDM)。
DCH 相容的驅動程式套件包含下列部分:
- 基底驅動程式套件
- 選用元件套件
- 選用的硬體支援應用程式
基底驅動程式套件包含所有核心功能和共享程序代碼。 選擇性元件套件可以包含客製化內容和其他設定。
一般而言,裝置製造商或獨立硬體廠商 (IHV) 會寫入基底驅動程式套件。 然後,系統建置者或原始設備製造商(OEM)會提供任何選用的元件套件。
在 IHV 認證基底驅動程式套件之後,它可以部署在所有 OEM 系統上。 因為基本驅動程式包可以跨所有共用硬體元件的系統使用,Microsoft 可以透過 Windows Insider 計畫的測試來廣泛測試基本驅動程式包,而不必限制於特定機器的分發。
OEM 只會驗證它為 OEM 系統提供的選擇性自定義。
需求
若要建立遵循 DCH 設計原則的驅動程式套件,請遵循下列步驟:
- 為您的驅動程式套件建立 INF 檔案:
- 檢閱 通用驅動程式套件中有效的 INF 區段和指示詞清單。
- 使用 InfVerif 工具來確認驅動程式套件的 INF 檔案符合宣告式 (D) 需求。 它應該通過
infverif /k
。
- 請確定不包含核心驅動程式功能的任何選擇性元件套件都與基底驅動程式套件分開。
- 與驅動程式套件相關聯的硬體支援應用程式必須透過 Microsoft 市集散發。
最佳做法
如果您使用 Windows 驅動程式套件 (WDK) 與最新的可用 Visual Studio,請將驅動程式項目屬性中的 [目標平臺 ] 值設定為
Universal
。 這會自動新增正確的連結庫,並在建置時執行適當的 INF 驗證和 ApiValidator。 要達成此目的:- 開啟驅動程序項目屬性。
- 選取 [驅動程序設定]。
- 使用下拉選單將 [目標平臺 ] 設定為
Universal
。
如果您的 INF 執行任何相依於目標平臺的自訂設定動作,請考慮將它們分成延伸模組 INF。 您可以從基底驅動程式套件獨立更新擴充功能 INF,使其更強固且可服務。 如需詳細資訊,請參閱 使用擴充功能 INF 檔案。
如果您想要提供與裝置搭配使用的應用程式,請包含硬體支援應用程式。 如需詳細資訊,請參閱 硬體支援應用程式 (HSA):驅動程式開發人員的步驟。 OEM 可以使用 DISM - 部署映像服務與管理預先載入這類應用程式。 或者,使用者可以從 Microsoft Store 手動下載應用程式。