Mutex _MSIExecute
O mutex _MSIExecute é definido somente durante o processamento da tabela InstallExecuteSequence, da tabela AdminExecuteSequence ou da tabela AdvtExecuteSequence.
Como duas instalações não podem ser executadas no mesmo processo, uma tentativa de chamar a API (interface de programação de aplicativo) do instalador retorna ERROR_INSTALL_ALREADY_RUNNING (1618) em dois casos:
- Enquanto o mutex _MSIExecute é definido.
- Enquanto o processo atual processa a tabela InstallUISequence ou a tabela AdminUISequence.
Confira as mensagens do Log de eventos para obter informações sobre qual aplicativo está sendo instalado.
Nos casos em que é impraticável retornar um erro ERROR_INSTALL_ALREADY_RUNNING, você pode recuperar o status atual do Serviço Windows Installer antes de tentar iniciar a instalação usando a função QueryServiceStatusEx. O Serviço Windows Installer estará em execução se o valor do membro dwControlsAccepted da estrutura SERVICE_STATUS_PROCESS retornada for SERVICE_ACCEPT_SHUTDOWN.
Windows Installer 2.0: sem suporte. O uso da função QueryServiceStatusEx para recuperar o status atual do Serviço Windows Installer exige o Windows Installer versão 3.0 ou superior.