Share via


MsiJoinTransaction-Funktion (msi.h)

Die MsiJoinTransaction-Funktion fordert an, dass der Windows Installer den aktuellen Prozess zum Besitzer der Transaktion macht, die die Installation mehrerer Pakete installiert.

Windows Installer 4.0 und früher: Nicht unterstützt. Diese Funktion ist ab Windows Installer 4.5 verfügbar.

Syntax

UINT MsiJoinTransaction(
  [in]  MSIHANDLE hTransactionHandle,
  [in]  DWORD     dwTransactionAttributes,
  [out] HANDLE    *phChangeOfOwnerEvent
);

Parameter

[in] hTransactionHandle

Die Transaktions-ID, die die Transaktion identifiziert und der bezeichner ist, der von der MsiBeginTransaction-Funktion zurückgegeben wird.

[in] dwTransactionAttributes

Attribute der Installation mit mehreren Paketen.

Wert Bedeutung
0
Wenn 0 oder kein Wert festgelegt ist, schließt Windows Installer die Benutzeroberfläche der vorherigen Installation.
MSITRANSACTION_CHAIN_EMBEDDEDUI
Legen Sie dieses Attribut fest, um anzufordern, dass Windows Installer die eingebettete Benutzeroberfläche erst herunterfahren soll, wenn die Transaktion abgeschlossen ist.
MSITRANSACTION_JOIN_EXISTING_EMBEDDEDUI
Legen Sie dieses Attribut fest, um anzufordern, dass Windows Installer die eingebettete Benutzeroberfläche von der ursprünglichen Installation überträgt. Wenn die ursprüngliche Installation über keine eingebettete Benutzeroberfläche verfügt, bewirkt das Festlegen dieses Attributs nichts.

[out] phChangeOfOwnerEvent

Dieser Parameter gibt ein Handle für ein Ereignis zurück, das festgelegt wird, wenn die MsiJoinTransaction-Funktion den Besitzer der Transaktion in einen neuen Besitzer ändert. Der aktuelle Besitzer kann damit bestimmen, wann sich der Besitz der Transaktion geändert hat. Wenn eine Transaktion ohne einen Besitzer belassen wird, wird ein Rollback für die Transaktion ausgeführt.

Rückgabewert

Die MsiJoinTransaction-Funktion kann die folgenden Werte zurückgeben.

Wert Bedeutung
ERROR_ACCESS_DENIED
Der Benutzer, der die Transaktion besitzt, und der Benutzer, der die Transaktion verknüpft, sind nicht identisch.
ERROR_INVALID_PARAMETER
Ein ungültiger Parameter wird an die Funktion übergeben.
ERROR_INSTALL_ALREADY_RUNNING
Der Besitzer kann nicht geändert werden, während eine aktive Installation ausgeführt wird.
ERROR_INVALID_HANDLE_STATE
Die angegebene Transaktions-ID ist ungültig.

Hinweise

Da eine Transaktion jeweils nicht mehr als einem Prozess gehören kann, können die in der MsiEmbeddedChainer-Tabelle erstellten Funktionen MsiJoinTransaction verwenden, um den Besitz der Transaktion anzufordern, bevor die Windows Installer-API zum Konfigurieren oder Installieren einer Anwendung verwendet wird. Das Installationsprogramm überprüft, ob keine Installation ausgeführt wird. Das Installationsprogramm überprüft, ob der Prozess, der den Besitz anfordert, und der Prozess, der derzeit besitzer der Transaktion ist, einen übergeordneten Prozess in derselben Prozessstruktur gemeinsam nutzen. Wenn die Funktion erfolgreich ist, wird der Prozess, der MsiJoinTransaction aufruft, zum aktuellen Besitzer der Transaktion.

MsiJoinTransaction legt die interne Benutzeroberfläche der neuen Installation auf die Ui-Ebene der ursprünglichen Installation fest. Nachdem die neue Installation die Transaktion besitzt, kann msiSetInternalUI aufgerufen werden, um die Ui-Ebene zu ändern. Dadurch kann die neue Installation auf einer höheren Ui-Ebene als die ursprüngliche Installation ausgeführt werden.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Installer 5.0 unter Windows Server 2012, Windows 8, Windows Server 2008 R2 oder Windows 7. Windows Installer 4.5 unter Windows Vista, Windows XP, Windows Server 2003 und Windows Server 2008. Informationen zum mindestens erforderlichen Windows Service Pack für eine Windows Installer-Version finden Sie unter Windows Installer – Laufzeitanforderungen.
Zielplattform Windows
Kopfzeile msi.h
Bibliothek Msi.lib
DLL Msi.dll

Weitere Informationen

Mehrere Paketinstallationen