次の方法で共有


ドライバー パッケージからの共同インストーラーの削除

注意

2023 年 1 月以降、共同インストーラーを含む ドライバー パッケージは、ハードウェア デベロッパー センター ポータルによって署名されなくなります。 要件の詳細については、「Windows ハードウェア互換性プログラムの仕様とポリシーの、具体的にはバージョン 22H2 ポリシー、Device.DevFund.INF.Declarativeセクションを参照してください。

このページでは、共同インストーラーがドライバー パッケージに存在する一般的な理由について説明し、共同インストーラーなしで同じタスクを実行するメカニズムを提供します。

WDFおよびWinUSBの共同インストーラー

WDF 共同インストーラーと WinUSB 共同インストーラーは、Windows 10 以降を実行しているシステムでは必要ありません。 WDF 共同インストーラー参照は、追加の作業なしで削除できます。 WinUSB 共同インストーラー参照を削除できます。また、Include ディレクティブと Needs ディレクティブを使用して、ドライバー パッケージ INF から WinUSB を参照する必要があります。

WinUSB ドライバー パッケージのガイダンス

ユーザー インターフェイスを表示するソフトウェアのインストール

インストール中にアプリケーションを起動するのではなく、ドライバー パッケージ INF の DDInstall.Software セクションから AddSoftware ディレクティブを使用してインストールされるユニバーサル Windows プラットフォーム アプリケーションを提供します。

詳細については、「ユニバーサル Windows プラットフォーム (UWP) アプリとドライバーをペアリングする」を参照してください。 AddSoftware ディレクティブ は、Windows 10 バージョン 1703 以降のバージョンの Windows でサポートされています。

詳細については、以下 関連ソフトウェアのインストール を参照してください。

デバイスフレンドリ名の設定

INF ファイル

ドライバー パッケージ INF は、デバイスのフレンドリ名を次のように設定できます。

[DDInstall.HW]
AddReg = FriendlyName_AddReg

[FriendlyName_AddReg]
HKR,,FriendlyName,, "Device Friendly Name"

ランタイム

フレンドリ名は、次のいずれかの API で DEVPKEY_Device_FriendlyName プロパティを設定することで、Start IRP または PrepareHardware フェーズ中にドライバーによって設定できます。

その他のデバイス設定/構成

可能な場合、ドライバーは、ドライバー内のデバイスの設定と構成を変更 IRP または PrepareHardware フェーズを開始できます。 実行時に状態を変更する場合、ドライバーはドライバー パッケージの分離要件に従う必要があります。 これらの要件には、ドライバーの構成と状態のレイアウトに関するガイダンスが含まれており、外部の変更に対する回復性が高く、更新が容易になり、インストールがより簡単になり、ドライバーの将来性を高めるのに役立ちます。

ドライバー自体で設定できない設定と構成の場合、ドライバー パッケージには、設定と構成を変更するユーザー モードランタイム コンポーネントが含まれる場合もあります。 これは、ユーザー向けのアプリまたは構成を更新する Win32 サービスです。 デバイスで使用するユーザー モード ソフトウェアを含める方法については、「コンポーネント INF ファイルを使用する を参照してください。

サービスなどの永続的なコンポーネントを使用する場合は、その機能が必要であり、ドライバー パッケージ INF 内やドライバー自体内など、リソースを集中的に消費しない方法で実行できないことを確認します。 関連するデバイスが接続されている場合にのみサービスが実行されるようにする方法については、「サービス トリガー、デバイスと対話する Win32 サービスの 、デバイス インターフェイス通知の登録 を参照してください。 また、サービスは最新の要件を満たす必要があります。たとえば、API Validatorを通過するなどです。

関連ソフトウェアのインストール

DCH ドライバー要件の "コンポーネント化" 部分、関連するソフトウェアからデバイス ドライバーのインストールを切り離すメカニズムである SoftwareComponent という概念が導入されました。 INF によってソフトウェア コンポーネントが作成されると、ソフトウェア コンポーネントにマップされる子デバイスが自動的に作成されます。 この子デバイスは、親デバイスに関連付けられているソフトウェアをインストールするために存在します。 このソフトウェアは、メインデバイスとドライバとは別にインストールおよび更新することができます。

SoftwareComponent ドライバー パッケージ INF 内で、ソフトウェアをインストールするための推奨されるメカニズムは、AddSoftware ディレクティブを使用することです。 これにより、Windows ストアからのソフトウェアのダウンロードとインストールがトリガーされます。

ドライバーとデバイス間の依存関係

デバイスの開始/列挙順序の依存関係

可能な限り、デバイス間の依存関係や開始順序の要件は避ける必要があります。

ACPI 列挙デバイスの場合、ACPI ファームウェアで依存関係オブジェクト (_DEP) を使用して、デバイスの開始順序を適用できます。 詳細については、「デバイス管理名前空間の」を参照してください。

ドライバーは、IRP_MN_QUERY_DEVICE_RELATIONS IRP に応答して、デバイス間のリレーションシップ、例えば除去関係などを定義することができます。 詳細については、IRP_MN_QUERY_DEVICE_RELATIONSを参照。

ドライバー パッケージのインストールの依存関係

CopyInf ディレクティブ を使用して、別のドライバーと同じインストール API 呼び出し中に追加のドライバー パッケージをインストールすることもできます。 インストール API に渡されたドライバー パッケージは、CopyInf で参照されるドライバー パッケージの前にインストールされますが、CopyInf によって参照されるドライバー パッケージが特定の順序でインストールされるとは限りません。

1 つのドライバー パッケージにバンドルされている複数のベンダーのコンポーネントの構成

ドライバー パッケージは、拡張機能 INF と呼ばれるドライバー パッケージ INF の種類をサポートします。 これは、"基本" ドライバー パッケージ INF の機能を拡張するために特別に設計された INF ファイルです。 拡張機能は、デバイスのファンクション ドライバーを提供することはできませんが、それ以外の場合は、他のディレクティブを使用したり、デバイスの他の設定を書き込んだりできます。 ドライバーのインストール中、デバイスの機能を提供するために、ドライバーランキング を使用して1つの基本ドライバーパッケージINFが選択され、その後、デバイスの拡張INFが選択されます。 詳細については、拡張 INF ファイルの使用方法について を参照してください。

拡張ドライバー パッケージ INF を利用するための一般的なパラダイムは、ハードウェアの製造元が基本ドライバー パッケージ INF を提供し、システム内でその部分を出荷する OEM が、そのシステム用にカスタマイズする拡張ドライバー パッケージ INF を作成することです。

ファームウェア更新プログラムのインストール/調整

更新するデバイスの性質に応じて、異なるファームウェア更新メカニズムをお勧めします。 Windows Update を使用してファームウェア更新プログラムを配布およびインストールするには、次の各コマンドを使用できます。

非リムーバブル

UEFI ファームウェア更新プラットフォームは、システム ファームウェアなど、削除できないシステムのコンポーネントを更新するように設計されています。 詳細については、「UEFI ファームウェア更新プラットフォームの」を参照してください。

リムーバブル

HID や USB デバイスなどのリムーバブル デバイスの場合、CFU モデルでは安全なファームウェアの更新が可能です。 詳細については、「コンポーネント ファームウェアの更新プログラムの」を参照してください。

カスタム実装

または、ドライバーの判断でデバイスのファームウェアを更新するカスタム ドライバーを記述することもできます。 詳細については、「カスタム ファームウェア更新ドライバー」を参照してください。