_MSIExecute Mutex
\_MSIExecute ミューテックスは、InstallExecuteSequence テーブル、AdminExecuteSequence テーブル、または AdvtExecuteSequence テーブルの処理中にのみ設定されます。
同じプロセス中に 2 つのインストールを実行できないことが原因で、インストーラーのアプリケーション プログラミング インターフェイス (API) を呼び出そうとすると、次の 2 つのケースで ERROR_INSTALL_ALREADY_RUNNING (1618) が返されます。
- _MSIExecute ミューテックスの設定が行われている場合。
- 現在のプロセスで InstallUISequence テーブルまたは AdminUISequence テーブルが処理されている場合。
どのアプリケーションがインストールされているかについては、イベント ログのメッセージを参照してください。
ERROR_INSTALL_ALREADY_RUNNING エラーを返すことが現実的でない場合、QueryServiceStatusEx 関数を使用して、インストールを開始する前に Windows インストーラー サービスの現在の状態を取得できます。 返された SERVICE_STATUS_PROCESS 構造体の dwControlsAccepted メンバーの値が SERVICE_ACCEPT_SHUTDOWN 場合、Windows インストーラー サービスは現在実行中です。
Windows インストーラー 2.0: サポートされていません。 QueryServiceStatusEx 関数を使用して Windows インストーラー サービスの現在の状態を取得するには、Windows インストーラー バージョン 3.0 以上が必要です。