次の方法で共有


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 インストーラーは以前のインストールから UI を閉じます。
MSITRANSACTION_CHAIN_EMBEDDEDUI
この属性を設定して、トランザクションが完了するまで Windows インストーラーが埋め込み UI をシャットダウンしないように要求します。

[out] phTransactionHandle

トランザクション ID は、トランザクションを識別する MSIHANDLE 値です。 一度に 1 つのトランザクションを所有できるプロセスは 1 つだけです。

[out] phChangeOfOwnerEvent

このパラメーターは、MsiJoinTransaction 関数がトランザクションの所有者を新しい所有者に変更したときに設定されるイベントへのハンドルを返します。 現在の所有者はこれを使用して、トランザクションの所有権がいつ変更されたかを判断できます。 所有者なしでトランザクションを終了すると、トランザクションがロールバックされます。

戻り値

MsiBeginTransaction 関数は、次の値を返します。

価値 意味
ERROR_INSTALL_SERVICE_FAILURE
インストール サービスにアクセスできませんでした。 この関数には、Windows インストーラー サービスが必要です。
ERROR_INSTALL_ALREADY_RUNNING
一度に 1 つのシステムで開くことができるトランザクションは 1 つだけです。 この関数は、別のトランザクションの実行中に呼び出されると、このエラーを返します。
ERROR_INVALID_PARAMETER
無効なパラメーターが関数に渡されます。
ERROR_ROLLBACK_DISABLED

ロールバック インストール は、DISABLEROLLBACK プロパティまたは DisableRollback ポリシー 無効になっています。

備考

手記

msi.h ヘッダーは、MSIBeginTransaction をエイリアスとして定義し、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows Server 2012、Windows 8、Windows Server 2008 R2、または Windows 7 の Windows インストーラー 5.0。 Windows Vista、Windows XP、Windows Server 2003、Windows Server 2008 の Windows インストーラー 4.5。 Windows インストーラーのバージョンで必要な最小 Windows Service Pack の詳細については、Windows インストーラーの Run-Time 要件を参照してください。
ターゲット プラットフォーム の ウィンドウズ
ヘッダー msi.h
ライブラリ Msi.lib
DLL Msi.dll

関連項目

複数のパッケージ インストール を する