次の方法で共有


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

Note

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

Windows 8 以降の Windows のバージョンでは、インストールの完了操作はデバイスのインストールの一部として自動的に実行されません。 完了インストール アクションを含むドライバーと共にデバイスがインストールされている場合、インストールの完了操作は自動的には実行されません。 代わりに、Windows では、通知領域または Windows アクション センターで 「デバイス ソフトウェアのインストールを完了」 というメッセージが表示されます。 デバイス ソフトウェアをインストールするには、管理者権限が必要です。 インストールに失敗した場合、ソフトウェアはユーザーにインストールを再試行するように求める必要があります。 ドライバーに付随するべきサポートソフトウェアのインストー ルもインストール完了アクションで行うことができますが、自動的にはインストールされません。

Windows 8 より前のバージョンでは、デバイスに完了インストール アクションを実行する必要があるフラグが設定されている場合、Windows は最初に、次のいずれかの時点で完了インストール プロセスを実行して、インストールの完了操作を完了しようとします。

  • Windows セットアップ中にインストールされたデバイスの場合、Windows セットアップの完了後に管理者が初めて Windows にログオンします。

  • Windows のインストール後にインストールまたは再インストールされたデバイスの場合、コア デバイスのインストール操作が完了した後、次のようになります。

    • デバイスの ハードウェア優先インストール の場合、Windows は最初の完了インストール プロセスを実行します。 現在のユーザーが管理者でない場合、Windows は、初期インストールの完了プロセスを実行する前に、管理者の資格情報の入力を求めるプロンプトを表示します。

    • デバイスの ソフトウェアファーストインストール の場合、Windows はインストールまたは再インストールを開始した管理者のコンテキストで初期のインストール完了プロセスを実行します。

Windows 8 より前のバージョンでは、インストールの完了操作を完了する最初の試行が成功すると、インストールの完了プロセスによって、完了インストール アクションを実行するフラグが設定されたデバイスがクリアされます。 インストールの完了操作を完了する最初の試行が失敗した場合、インストールの完了プロセスでは、完了インストール アクションを実行するフラグが設定されているとデバイスがクリアされず、終了します。 その後、デバイスが再メイン完了インストール アクションを実行するようにフラグが設定されている間、Windows は、次のように、デバイスが列挙されるたびに新しいインストール完了プロセスを実行して、インストールの完了操作を繰り返し実行します。

  • デバイスが再メインインストールされている間、次回管理者がログオンします。

  • 管理者がデバイスマネージャの[アクション]メニューで[ハードウェアの変更のスキャン]をクリックした場合、またはインストールプログラムが管理者のコンテキストで CM_Reenumerate_DevNode を呼び出した場合。

デバイスにインストール完了アクションを実行するフラグが設定されている場合、完了インストール プロセスは SetupDiCallClassInstaller を呼び出して、デバイスのインストーラーに DIF_FINISHINSTALL_ACTION 要求を送信します。

インストーラーにインストール完了操作がある場合、インストーラーはインストールの完了操作を実行し、DIF_FINISHINSTALL_ACTION 要求に対して適切なエラー コードを返します。 インストーラーは、次の表のいずれかのエラー コードを返します。

エラー コード 意味

ERROR_DI_DO_DEFAULT

クラス インストーラー: クラス インストーラーは、インストールの完了操作を正常に実行し、Windows に既定の処理を実行するよう要求しています。

また、完了インストール 操作がない場合、または完了インストール アクションが失敗し、再試行されない場合にも、このエラー コードを返します。

デバイスまたはクラスの共同インストーラー: 共同インストーラーは、このエラー コードを返しません。

NO_ERROR

クラス インストーラー: クラス インストーラーは、インストールの完了アクションを正常に実行しました。 Windows では、既定の処理を実行しないでください。

デバイスまたはクラスの共同インストーラー: 共同インストーラーは、完了インストールアクションを正常に実行したか、完了インストールアクションを実行しません。

インストールの完了操作が失敗し、もう一度試行すべきでない場合は、共同インストーラーによってこのエラー コードが返されます。

Microsoft Win32 エラー

完了インストール アクションの処理中に、クラス インストーラー、デバイス共同インストーラー、またはクラス共同インストーラーでエラーが発生しました。再度、完了インストール アクションの処理が必要です。

Win32 エラー コードを返すことで、インストラーは、デバイスが次回列挙されるときに、Windows が別の完了インストール プロセスを実行して、インストールの完了操作を実行する必要があることを示します。 インストーラーは、この状況をユーザーに通知する必要もあります。