Функция MsiBeginTransactionA (msi.h)

Функция MsiBeginTransaction запускает обработку транзакций установки с несколькими пакетами и возвращает идентификатор транзакции. Функция MsiEndTransaction завершает транзакцию.

Установщик Windows 4.0 и более ранние версии: Не поддерживается. Эта функция доступна начиная с установщика Windows 4.5.

Синтаксис

UINT MsiBeginTransactionA(
  [in]  LPCSTR    szName,
  [in]  DWORD     dwTransactionAttributes,
  [out] MSIHANDLE *phTransactionHandle,
  [out] HANDLE    *phChangeOfOwnerEvent
);

Параметры

[in] szName

Имя установки с несколькими пакетами.

[in] dwTransactionAttributes

Атрибуты установки с несколькими пакетами.

Значение Значение
0
Если значение равно 0 или не задано, установщик Windows закрывает пользовательский интерфейс из предыдущей установки.
MSITRANSACTION_CHAIN_EMBEDDEDUI
Задайте этот атрибут, чтобы установщик Windows не завершать работу внедренного пользовательского интерфейса до завершения транзакции.

[out] phTransactionHandle

Идентификатор транзакции — это значение MSIHANDLE , идентифицирующее транзакцию. Одновременно только один процесс может владеть транзакцией.

[out] phChangeOfOwnerEvent

Этот параметр возвращает дескриптор событиям, которое устанавливается, когда функция MsiJoinTransaction изменяет владельца транзакции на нового владельца. Текущий владелец может использовать этот параметр, чтобы определить, когда изменилось владение транзакцией. Если транзакция останется без владельца, транзакция будет откатиться.

Возвращаемое значение

Функция MsiBeginTransaction возвращает следующие значения.

Значение Значение
ERROR_INSTALL_SERVICE_FAILURE
Не удалось получить доступ к службе установки. Для этой функции требуется служба установщика Windows.
ERROR_INSTALL_ALREADY_RUNNING
Одновременно в системе может быть открыта только одна транзакция. Функция возвращает эту ошибку при вызове во время выполнения другой транзакции.
ERROR_INVALID_PARAMETER
В функцию передается недопустимый параметр.
ERROR_ROLLBACK_DISABLED

Установка отката отключена свойством DISABLEROLLBACK или политикой DisableRollback .

Комментарии

Примечание

Заголовок msi.h определяет MsiBeginTransaction как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора UNICODE. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

Требование Значение
Минимальная версия клиента Установщик Windows 5.0 в Windows Server 2012, Windows 8, Windows Server 2008 R2 или Windows 7. Установщик Windows 4.5 в Windows Vista, Windows XP, Windows Server 2003 и Windows Server 2008. Сведения о минимальном пакете обновления Windows, необходимом для версии установщика Windows, см. в статье Требования к установщику Windows Run-Time.
Целевая платформа Windows
Header msi.h
Библиотека Msi.lib
DLL Msi.dll

См. также раздел

Установка нескольких пакетов