MsiEndTransaction 函数 (msi.h)

MsiEndTransaction 函数可以提交或回滚属于 MsiBeginTransaction 函数打开的事务的所有安装。 事务的当前所有者应调用此函数。

Windows Installer 4.0 及更早版本不支持。 此函数从 Windows Installer 4.5 开始提供。

语法

UINT MsiEndTransaction(
  [in] DWORD dwTransactionState
);

参数

[in] dwTransactionState

此参数的值确定安装程序是提交还是回滚属于该事务的所有安装。 该值可以是以下值之一。

含义
MSITRANSACTIONSTATE_ROLLBACK
执行 回滚安装 以撤消对属于 MsiBeginTransaction 函数打开的事务的系统所做的更改。
MSITRANSACTIONSTATE_COMMIT
将所有更改提交到属于事务的系统。 运行任何 提交自定义操作 ,并将对 Win32 或公共语言运行时程序集的任何更改提交到系统。 删除回滚脚本,使用此选项后,无法再使用 回滚安装撤消事务的更改。

返回值

MsiEndTransaction 函数返回以下值。

含义
ERROR_ACCESS_DENIED
事务只能由当前所有者结束。
ERROR_INSTALL_FAILURE
无法完成属于事务的安装。
ERROR_INSTALL_ALREADY_RUNNING
属于事务的安装仍在进行中。
ERROR_ROLLBACK_DISABLED
属于事务的安装未完成。 在安装期间, DisableRollback 操作禁用了包的 回滚安装 。 安装程序会将安装回滚到禁用回滚的点,并且函数返回此错误。

要求

要求
最低受支持的客户端 Windows Server 2012、Windows 8、Windows Server 2008 R2 或 Windows 7 上的 Windows Installer 5.0。 Windows Vista、Windows XP、Windows Server 2003 和 Windows Server 2008 上的 Windows Installer 4.5。 若要了解 Windows Installer 版本所需的最低 Windows Service Pack,请参阅 Windows Installer 运行时要求。
目标平台 Windows
标头 msi.h
Library Msi.lib
DLL Msi.dll

另请参阅

多个包安装