_MSIExecute мьютекс
_MSIExecute Mutex задается только при обработке таблицы InstallExecuteSequence, таблицы AdminExecuteSequence или Таблицы AdvtExecuteSequence.
Поскольку две установки не могут быть запущены в одном процессе, попытка вызвать программный интерфейс (API) установщика возвращает ERROR_INSTALL_ALREADY_RUNNING (1618) в двух случаях:
- Пока задан _MSIExecute мьютекс.
- Пока текущий процесс обрабатывает таблицу InstallUISequence или таблицу AdminUISequence.
Сведения о том, какое приложение устанавливается, см . в разделе Сообщения журнала событий.
В случаях, когда возвращать ошибку ERROR_INSTALL_ALREADY_RUNNING нецелесообразно, можно получить текущее состояние службы установщика Windows перед попыткой начать установку с помощью функции QueryServiceStatusEx . Служба установщика Windows в настоящее время запущена, если значение элемента dwControlsAccepted возвращаемой структуры SERVICE_STATUS_PROCESSSERVICE_ACCEPT_SHUTDOWN.
Установщик Windows 2.0: Не поддерживается. Для использования функции QueryServiceStatusEx для получения текущего состояния службы установщика Windows требуется установщик Windows версии 3.0 или более поздней.