_MSIExecute exclusión mutua
La _MSIExecute Mutex solo se establece mientras se procesa la tabla InstallExecuteSequence , tabla AdminExecuteSequenceo tabla AdvtExecuteSequence.
Dado que no se pueden ejecutar dos instalaciones en el mismo proceso, un intento de llamar a la interfaz de programación de aplicaciones (API) del instalador devuelve ERROR_INSTALL_ALREADY_RUNNING (1618) en dos casos:
- Mientras se establece la _MSIExecute exclusión mutua.
- Mientras el proceso actual procesa la tabla installUISequence o tabla AdminUISequence.
Consulte el registro de eventos mensajes para obtener información sobre qué aplicación se está instalando.
En los casos en los que no es práctico devolver un error de ERROR_INSTALL_ALREADY_RUNNING, puede recuperar el estado actual del servicio de Windows Installer antes de intentar iniciar la instalación mediante la funciónQueryServiceStatusEx. El servicio de Windows Installer se está ejecutando actualmente si el valor del dwControlsAccepted miembro de la estructura de SERVICE_STATUS_PROCESS devuelta es SERVICE_ACCEPT_SHUTDOWN.
Windows Installer 2.0: no se admite. El uso de la función QueryServiceStatusEx para recuperar el estado actual del servicio Windows Installer requiere Windows Installer versión 3.0 o posterior.