Partager via


_MSIExecute Mutex

Le mutex _MSIExecute est défini uniquement lors du traitement de la table InstallExecuteSequence , table AdminExecuteSequenceou table AdvtExecuteSequence.

Étant donné que deux installations ne peuvent pas être exécutées dans le même processus, une tentative d’appel de l’interface de programmation d’application (API) du programme d’installation retourne ERROR_INSTALL_ALREADY_RUNNING (1618) dans deux cas :

  • Pendant que le mutex _MSIExecute est défini.
  • Pendant que le processus actuel traite la table installUISequence ou table AdminUISequence.

Consultez les messages de journalisation des événements pour plus d’informations sur l’application en cours d’installation.

Dans les cas où il n’est pas pratique de retourner une erreur ERROR_INSTALL_ALREADY_RUNNING, vous pouvez récupérer l’état actuel du service Windows Installer avant de tenter de démarrer l’installation à l’aide de la fonction QueryServiceStatusEx. Le service Windows Installer est en cours d’exécution si la valeur de la dwControlsAccepted membre de la structure de SERVICE_STATUS_PROCESS retournée est SERVICE_ACCEPT_SHUTDOWN.

Windows Installer 2.0 : Non pris en charge. L’utilisation de la fonction QueryServiceStatusEx pour récupérer l’état actuel du service Windows Installer nécessite Windows Installer version 3.0 ou ultérieure.