_MSIExecute Mutex
只有在處理InstallExecuteSequence 資料表、AdminExecuteSequence 資料表或AdvtExecuteSequence 資料表時,才會設定_MSIExecute Mutex。
因為兩個安裝無法在相同進程中執行,所以在兩種情況下,嘗試呼叫安裝程式的應用程式開發介面 (API) 會傳回 ERROR_INSTALL_ALREADY_RUNNING (1618) :
- 設定_MSIExecute Mutex 時。
- 當目前的進程正在處理 InstallUISequence 資料表 或 AdminUISequence 資料表時。
如需所安裝應用程式的相關資訊,請參閱 事件記錄 訊息。
如果無法傳回ERROR_INSTALL_ALREADY_RUNNING錯誤,您可以先擷取 Windows Installer 服務的目前狀態,再嘗試使用 QueryServiceStatusEx 函 式來啟動安裝。 如果傳回之SERVICE_STATUS_PROCESS結構的dwControlsAccepted成員值SERVICE_ACCEPT_SHUTDOWN,Windows Installer 服務目前正在執行。
Windows Installer 2.0: 不支援。 使用 QueryServiceStatusEx 函 式來擷取 Windows Installer 服務的目前狀態需要 Windows Installer 3.0 版或更新版本。