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