Поделиться через


Функция 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 или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Установщик 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".
целевая платформа Виндоус
заголовка msi.h
библиотеки Msi.lib
DLL Msi.dll

См. также

несколько установок пакетов