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 または値が設定されていない場合、Windows インストーラーは以前のインストールから UI を閉じます。 |
|
この属性を設定して、トランザクションが完了するまで Windows インストーラーが埋め込み UI をシャットダウンしないように要求します。 |
[out] phTransactionHandle
トランザクション ID は、トランザクションを識別する MSIHANDLE 値です。 一度に 1 つのトランザクションを所有できるプロセスは 1 つだけです。
[out] phChangeOfOwnerEvent
このパラメーターは、 MsiJoinTransaction 関数がトランザクションの所有者を新しい所有者に変更したときに設定されたイベントへのハンドルを返します。 現在の所有者はこれを使用して、トランザクションの所有権がいつ変更されたかを判断できます。 所有者なしでトランザクションを終了すると、トランザクションがロールバックされます。
戻り値
MsiBeginTransaction 関数は、次の値を返します。
値 | 意味 |
---|---|
|
インストール サービスにアクセスできませんでした。 この関数には、Windows インストーラー サービスが必要です。 |
|
一度に 1 つのシステムで開くことができるトランザクションは 1 つだけです。 関数は、別のトランザクションの実行中に 呼び出された場合にこのエラーを返します。 |
|
無効なパラメーターが関数に渡されます。 |
|
ロールバック インストールは、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 サービス パックに関する詳細については、Windows インストーラーの実行時の要件に関する記事を参照してください。 |
対象プラットフォーム | Windows |
ヘッダー | msi.h |
Library | Msi.lib |
[DLL] | Msi.dll |