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