_MSIExecute Mutex

The _MSIExecute Mutex is set only while processing the InstallExecuteSequence table, AdminExecuteSequence table, or AdvtExecuteSequence table.

Because two installations cannot be run in the same process, an attempt to call the installer's application programming interface (API) returns ERROR_INSTALL_ALREADY_RUNNING (1618) in two cases:

See the Event Logging messages for information about what application is being installed.

In cases where it is impractical to return an ERROR_INSTALL_ALREADY_RUNNING error, you can retrieve the current status of the Windows Installer service before attempting to start the installation by using the QueryServiceStatusEx function. The Windows Installer service is currently running if the value of the dwControlsAccepted member of the returned SERVICE_STATUS_PROCESS structure is SERVICE_ACCEPT_SHUTDOWN.

Windows Installer 2.0:  Not supported. The use of the QueryServiceStatusEx function to retrieve the current status of the Windows Installer service requires Windows Installer version 3.0 or greater.

Send comments about this topic to Microsoft

Build date: 11/12/2009

Tags :


Community Content

Andrew Steenson
Need to specify Namespace of Mutex

If using the Windows API functions to check on the Mutex, use Global\_MSIExecute. Otherwise on Vista your chainer will check the Local namespace instead of the Global namespace that Windows Installer is using


Page view tracker