インストールの完了アクションの処理方法
Note
このセクションで説明する機能は、ユニバーサル ドライバー パッケージまたはモバイル ドライバー パッケージではサポートされていません。 「ユニバーサル INF ファイルの使用」を参照してください。
デバイスのインストールの完了操作は、インストーラー (クラス インストーラー、クラス共同インストーラー、またはデバイス共同インストーラー) によって同じ方法で処理されます。インストールがハードウェア優先インストールであったか、新しいハードウェアの検出ウィザード、ドライバーの更新プログラム ウィザード、ベンダーが提供するインストール プログラム (ソフトウェア優先インストール) などのインストール プログラムを実行してインストールが開始されるかどうかに関係なく、
注 : Windows 8、Windows 8.1、および Windows 10 では、管理者 (または UAC プロンプトに管理者の資格情報を提供できる制限付きユーザー) がアクション センターで完了する必要があります。 ユーザーは、[デバイス ソフトウェアのインストールを完了する] をクリックする必要があります。
Windows プロセスは、他のすべてのインストール操作が完了し、次のようなデバイスが開始された後に、インストール操作を完了します。
- デバイスのドライバーがインストールされ、システムのプラグ アンド プレイ (PnP) マネージャー コンポーネントによって読み込まれる、コア デバイスのインストール (サーバー側インストールとも呼ばれます)。
Windows では、インストーラーのインストール完了アクションを処理するために、次の手順が完了します。
コア デバイスのインストールの最後に、Windows は SetupDiCallClassInstaller を呼び出して、デバイスのインストーラーに DIF_NEWDEVICEWIZARD_FINISHINSTALL 要求を送信します。
DIF_NEWDEVICEWIZARD_FINISHINSTALL は、コア デバイス インストールのコンテキストとクライアント コンテキストの両方で送信される唯一の DIF コードです。 そのため、クラス インストーラー、クラス共同インストーラー、またはデバイス共同インストーラーは、DIF_INSTALLDEVICE 処理中ではなく、DIF_NEWDEVICEWIZARD_FINISHINSTALL 処理中に完了インストール アクションがあることを示す必要があります。
インストーラーは、インストールの完了操作を提供する場合、DIF_NEWDEVICEWIZARD_FINISHINSTALL 要求に応答して DIF_FLAGSEX_FINISHINSTALL_ACTION フラグを設定します。 すべてのインストーラーが DIF_NEWDEVICEWIZARD_FINISHINSTALL 要求を処理した後に DIF_FLAGSEX_FINISHINSTALL_ACTION フラグが設定されている場合、デバイスにはインストール完了アクションを実行するフラグが設定されます。
この操作の詳細については、「インストール完了アクションを実行するデバイスとしてマークする」を参照してください。
デバイスのコア デバイスのインストールが完了すると、Windows はデバイスにインストール完了アクションを実行するフラグが設定されているかどうかをチェックします。 存在する場合、Windows は、デバイスに固有の完了インストール アクションを実行する完了インストール プロセスをキューに入れます。 プロセスは、ユーザーのコンテキストで実行します。
Windows 8 以降のバージョンでは、インストールの完了操作はデバイスのインストールの一部として自動的に実行されません。 代わりに、管理者(またはUACプロンプトに管理者認証情報を提供できる限定ユーザー)がアクションセンターに移動し、「デバイスソフトウェアのインストールを終了する」メンテナンス項目に対処して、終了インストールアクションを実行する必要があります。 それまでは、インストール完了アクションは実行されません。 例えば、finish-installアクションを含むドライバをインストールするデバイスをユーザーがプラグインした場合、その時点ではインストール完了アクションは自動的に実行されません。 インストール完了アクションは、ユーザーが手動で開始したときに後で実行されます。 Windows がインストールの完了アクションを実行する際に、それがアクションを実行する唯一の機会にあります。 アクションが失敗した場合は、ユーザーが再試行し、後で終了できるように適切な手順を踏まなければなりません。 ドライバーに付随するべきサポートソフトウェアのインストー ルもインストール完了アクションで行うことができますが、自動的にはインストールされません。
Windows 7 では、インストールの完了プロセスは、管理者の資格情報を持つユーザーのコンテキストでのみ、次のいずれかの時点で実行されます。
- 次回、デバイスが接続されている間に管理者の資格情報を持つユーザーがログオンします。
- デバイスが再アタッチされたとき。
- ユーザーが [デバイスマネージャーでハードウェアの変更をスキャンする] を選んだとき。
ユーザーが管理者特権なしでサインインしている場合、Windows は管理者コンテキストでインストール完了アクションを実行するための同意と資格情報をユーザーに求めるプロンプトを表示します。
インストール完了操作が実行されると、インストール完了プロセスが開始され、デバイスのインストール完了ウィザード ページが完了し、「Finish-Install アクションの実行」に記載されているとおり SetupDiCallClassInstaller が呼び出され、DIF_FINISHINSTALL_ACTION要求がデバイスのすべてのインストーラーに送信されます。
インストーラーがインストールの完了操作を完了すると、「既定のインストール完了操作の実行」に記載のとおり、Windows によって既定のインストール完了アクションが実行されます。