基本のインストール操作

インストーラーは、SetupAPI によって提供される デバイス インストール機能 を使用して、インストール操作を実行できます。 これらの関数を使用すると、インストーラーは INF ファイルで互換性のあるドライバーを検索し、選択ダイアログ ボックスを使用してドライバーの選択肢をユーザーに表示し、実際のドライバーのインストールを実行できます。

ほとんどのデバイスインストール機能は、インストールタスクを実行するために SP_DEVINFO_DATA 構造の情報に依存します。 各デバイスは、SP_DEVINFO_DATA構造に関連付けられています。 SetupDiGetClassDevs 関数を使用して、特定のクラスにインストールされているすべてのデバイスを含むデバイス情報セットへのハンドル (HDEVINFO) を取得できます。 SetupDiDestroyDeviceInfoList 関数を使用して、デバイス情報セット内のすべてのSP_DEVINFO_DATA構造体を解放できます。 この関数は、構造体に追加された可能性がある互換性のあるデバイスとクラスのデバイス リストも解放します。

SetupDiBuildDriverInfoList 関数を使用すると、インストーラーまたはユーザーがインストールするドライバーまたはデバイスを選択できるリストを生成できます。 SetupDiBuildDriverInfoList は、互換性のあるドライバーの一覧または特定のクラスのすべてのデバイスの一覧を作成します。

インストーラーでは、インストールしようとしているデバイスのレジストリ キーの値を調べて設定する必要がある場合があります。 SetupDiCreateDevRegKey または SetupDiOpenDevRegKey 関数を使用して、デバイスのハードウェアまたはドライバー キーを開くことができます。

SetupDiInstallClass 関数を使用して、新しいデバイス セットアップ クラスをインストールできます。 この関数は、 INF ClassInstall32 セクションを含む INF ファイルから新しいセットアップ クラスをインストールします。

setupDiCallClassInstaller 関数と DIF_REMOVE の DI_FUNCTION パラメーターを使用して、システムからデバイスを削除できます。 この関数は、デバイスのレジストリ エントリを削除し、可能であれば、デバイスを停止します。 デバイスを動的に停止できない場合、関数は最終的にユーザーにシステムの再起動を求めるフラグを設定します。