_MSIExecute Mutex
仅在处理 InstallExecuteSequence 表、AdminExecuteSequence 表或 AdvtExecuteSequence 表时设置_MSIExecute Mutex。
由于两个安装不能在同一进程中运行,因此在两种情况下,尝试调用安装程序的应用程序编程接口(API)将返回ERROR_INSTALL_ALREADY_RUNNING(1618):
- 设置_MSIExecute Mutex。
- 当前进程正在处理 InstallUISequence 表 或 AdminUISequence 表。
有关要安装的应用程序的信息,请参阅 事件日志记录 消息。
如果返回ERROR_INSTALL_ALREADY_RUNNING错误是不切实际的,可以在尝试使用 QueryServiceStatusEx 函数启动安装之前检索 Windows Installer 服务的当前状态。 如果返回 SERVICE_STATUS_PROCESS 结构的 dwControlsAccepted 成员的值 SERVICE_ACCEPT_SHUTDOWN,则 Windows Installer 服务当前正在运行。
Windows Installer 2.0:不支持。 使用 QueryServiceStatusEx 函数检索 Windows Installer 服务的当前状态需要 Windows Installer 版本 3.0 或更高版本。