インストールの完了のアクション

Note

このセクションで説明する機能は、ユニバーサル ドライバー パッケージまたはモバイル ドライバー パッケージではサポートされていません。 ユニバーサル INF ファイルの使用

インストールの完了操作 により、インストーラーはインストール操作を完了できます。

インストーラーは、Windows Vista 以降のバージョン以降のクラス インストーラー、クラス共同インストーラー、またはデバイス共同インストーラーで実行されるインストールの完了操作を指定できます。 インストールの完了操作は、インストールの完了ウィザード ページを含む他のすべてのインストール操作が完了した後、管理者のコンテキストで実行されます。

Windows 7 では、既定の完了インストール アクションは、システム提供のSetupDiFinishInstallAction関数によって提供されます。 この関数は、管理者の対話型コンテキストで、デバイスに設定されている RunOnce registry entriesレジストリ エントリ を処理します。 デバイスにクラス インストーラーがない場合、またはクラス インストーラーがDIF_FINISHINSTALL_ACTION要求に応答してERROR_DI_DO_DEFAULTを返す場合、Windows は、デバイスのすべてのインストーラーがインストールの完了操作を完了した後に SetupDiFinishInstallAction を呼び出します。

Windows 8 以降のバージョンでは、デバイスのインストールの一部として完了インストール アクションが自動的に実行されず、SetupDiFinishInstallAction関数が削除されました。 代わりに、管理者(またはUACプロンプトに管理者認証情報を提供できる限定ユーザー)がアクションセンターに移動し、「デバイスソフトウェアのインストールを終了する」メンテナンス項目に対処して、終了インストールアクションを実行する必要があります。 それまでは、インストール完了アクションは実行されません。 例えば、finish-installアクションを含むドライバをインストールするデバイスをユーザーがプラグインした場合、その時点ではインストール完了アクションは自動的に実行されません。 その代わり、インストール完了アクションは、後でユーザーが手動で開始した時点で実行されます。 その後、Windows がインストールの完了アクションを実行する際に、それがアクションを実行する唯一の機会にあります。 アクションが失敗した場合は、ユーザーが再試行し、後で終了できるように適切な手順を踏まなければなりません。 同様に、ドライバーに付随するべきサポートソフトウェアのインストー ルもインストール完了アクションで行うことができますが、自動的にはインストールされません。

または、シナリオによっては、Windows 8以降のバージョンでは、新しいデバイス アプリ モデルを利用できる場合があります。 デバイス アプリの詳細については、「優れたハードウェア エクスペリエンスの設計」を参照してください。

インストール完了アクションは、次の状況で役立ちます:

  • インストール完了ウィザードページの一部として実行するように設計されていない、デバイス固有のアプリケーションインストールプログラムを実行する方法。 このようなインストールプログラムに独自のユーザーインターフェイスがある場合、インストール完了アクションを使用してアプリケーションをインストールすると、より良いユーザーエクスペリエンスが得られます。

    例えば、デバイスメーカーがデバイスのドライバーに加えてデバイス固有のアプリケーションをインストールしたいと考え、デバイス固有のアプリケーションが独自のユーザーインターフェイスを持つ独自のインストールプログラムを持っていると仮定します。 最高のユーザーエクスペリエンスを提供するため、デバイスメーカーはインストール完了アクションとしてインストールプログラムを実行します。 このようにして、Windowsがデバイスを検出し、ドライバをー見つけると、Windowsはまずドライバーをインストールし、次にアプリケーションのインストールプログラムを実行します。

  • インタラクティブなユーザーコンテキストでのみ実行可能なインストールプログラムを実行する場合(クライアント側インストール)。 たとえば、このようなインストール プログラムは、ドライバーパッケージの INF ファイルのINF ControlFlagsセクションでInteractiveInstallディレクティブを使用して開始できます。

    Windows Vista 以降では、このようなインストールプログラムを以前のバージョンのWindowsと同じ方法で実行することはできません。 これは、Windows Vista 以降のバージョンの Windows では、クライアント側のインストール内でのデバイスのインストールがサポートされていないためです。 ただし、インストールプログラムを起動するクラスインストーラー、クラス共同インストーラー、またはデバイス共同インストーラーがドライバーパッケージに含まれている場合は、このようなインストールプログラムをインストール完了操作として実行できます。

このセクションでは、インストール完了操作について詳しく説明し、次のトピックが含まれます:

インストールの完了アクションの概要

インストールの完了アクションの実装

インストールの完了アクションの処理方法