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