この記事では、DCH 準拠ドライバー パッケージの設計原則とベスト プラクティスについて説明します。 DCH は、宣言 型 (D)、コンポーネント化 (C)、ハードウェア サポート アプリ (H) の略です。
DCH 設計の原則
ドライバー パッケージを DCH に準拠させるために考慮すべき 3 つの設計原則があります。
宣言型: 宣言型 INF ディレクティブのみを使用してドライバー パッケージをインストールします。 コインストーラーや RegisterDll 関数は含めないでください。
コンポーネント化: ドライバー パッケージに対するエディション固有、OEM 固有、およびオプションのカスタマイズは、基本ドライバー パッケージとは別のものです。 その結果、コア デバイス機能のみを提供する基本ドライバー パッケージは、カスタマイズとは別にターゲット設定、フライティング、およびサービスを提供できます。
ハードウェア サポート アプリ (HSA):ドライバー パッケージに関連付けられているユーザー インターフェイス (UI) コンポーネントは、HSA としてパッケージ化するか、OEM デバイスにプレインストールする必要があります。 HSA は、ドライバー パッケージとペアリングされたオプションのデバイス固有のアプリです。 アプリケーションには、コードから MSIX パッケージを使用して構築されたユニバーサル Windows プラットフォーム (UWP) またはデスクトップ ブリッジ アプリを使用できます。 MICROSOFT Store を通じて HSA を配布および更新する必要があります。 詳細については、「 HSA: ドライバー開発者向けの手順 」と 「HSA: アプリ開発者向けの手順」を参照してください。
ドライバー サンプルで DCH 設計原則を適用する方法については、 DCH 準拠ドライバー パッケージの例を参照してください。
DCH の概要
DCH に準拠しているドライバー パッケージには、 WINDOWS の UWP ベースのエディションにインストールして実行する INF ファイルとバイナリが含まれています。 また、共通のインターフェイス セットを共有する 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 Store を通じて配布する必要があります。
DCH のベスト プラクティス
DCH コンプライアンス用に開発する場合は、次のベスト プラクティスに従います。
最新バージョンの Visual Studio で Windows ドライバー キット (WDK) を使用する場合は、ドライバー プロジェクトのプロパティの ターゲット プラットフォーム の値を
Universalに設定します。 この設定により、適切なライブラリが自動的に追加され、ビルドの一部として適切な INF 検証と ApiValidator が実行されます。 このタスクを実行するには、次の手順に従います。- ドライバー プロジェクトのプロパティを開きます。
- [ ドライバーの設定] を選択します。
- ドロップダウン メニューを使用して、 ターゲット プラットフォーム の値を
Universalに設定します。
INF がターゲット プラットフォームに依存するカスタム セットアップ アクションを実行する場合は、そのアクションを拡張 INF に分離することを検討してください。 基本ドライバー パッケージとは別に拡張 INF を更新して、より堅牢で保守可能にすることができます。 詳細については、「 拡張 INF ファイルの使用」を参照してください。
デバイスで動作するアプリケーションを提供する場合は、HSA を含めます。 詳細については、「 HSA: ドライバー開発者向けの手順」を参照してください。 OEM は 、展開イメージのサービスと管理 (DISM) を使用して HSA アプリをプリロードできます。または、ユーザーは Microsoft Store からアプリを手動でダウンロードできます。