Condividi tramite


Funzione MsiJoinTransaction (msi.h)

La funzione MsiJoinTransaction richiede che Windows Installer faccia in modo che il processo corrente sia il proprietario della transazione che installa l'installazione di più pacchetti.

Windows Installer 4.0 e versioni precedenti: Non supportato. Questa funzione è disponibile a partire da Windows Installer 4.5.

Sintassi

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

Parametri

[in] hTransactionHandle

ID transazione, che identifica la transazione ed è l'identificatore restituito dalla funzione MsiBeginTransaction .

[in] dwTransactionAttributes

Attributi dell'installazione di più pacchetti.

Valore Significato
0
Quando è impostato 0 o nessun valore, Windows Installer chiude l'interfaccia utente dall'installazione precedente.
MSITRANSACTION_CHAIN_EMBEDDEDUI
Impostare questo attributo per richiedere che Windows Installer non arresti l'interfaccia utente incorporata fino al completamento della transazione.
MSITRANSACTION_JOIN_EXISTING_EMBEDDEDUI
Impostare questo attributo per richiedere che Windows Installer trasferisca l'interfaccia utente incorporata dall'installazione originale. Se l'installazione originale non ha un'interfaccia utente incorporata, l'impostazione di questo attributo non esegue alcuna operazione.

[out] phChangeOfOwnerEvent

Questo parametro restituisce un handle a un evento impostato quando la funzione MsiJoinTransaction modifica il proprietario della transazione in un nuovo proprietario. Il proprietario corrente può usarlo per determinare quando la proprietà della transazione è stata modificata. Se si lascia una transazione senza un proprietario, verrà eseguito il rollback della transazione.

Valore restituito

La funzione MsiJoinTransaction può restituire i valori seguenti.

Valore Significato
ERROR_ACCESS_DENIED
L'utente proprietario della transazione e l'utente che unisce la transazione non sono uguali.
ERROR_INVALID_PARAMETER
Un parametro non valido viene passato alla funzione .
ERROR_INSTALL_ALREADY_RUNNING
Impossibile modificare il proprietario mentre è in corso un'installazione attiva.
ERROR_INVALID_HANDLE_STATE
L'ID transazione specificato non è valido.

Commenti

Poiché una transazione può essere di proprietà di non più di un processo alla volta, le funzioni create nella tabella MsiEmbeddedChainer possono usare MsiJoinTransaction per richiedere la proprietà della transazione prima di usare l'API di Windows Installer per configurare o installare un'applicazione. Il programma di installazione verifica che non sia in corso alcuna installazione. Il programma di installazione verifica che il processo richieda la proprietà e il processo che attualmente possiede la transazione condividono un processo padre nello stesso albero di processi. Se la funzione ha esito positivo, il processo che chiama MsiJoinTransaction diventa il proprietario corrente della transazione.

MsiJoinTransaction imposta l'interfaccia utente interna della nuova installazione sul livello di interfaccia utente dell'installazione originale. Dopo che la nuova installazione è proprietaria della transazione, può chiamare MsiSetInternalUI per modificare il livello dell'interfaccia utente. In questo modo, la nuova installazione può essere eseguita a un livello di interfaccia utente superiore rispetto all'installazione originale.

Requisiti

Requisito Valore
Client minimo supportato Windows Installer 5.0 in Windows Server 2012, Windows 8, Windows Server 2008 R2 o Windows 7. Windows Installer 4.5 in Windows Vista, Windows XP, Windows Server 2003 e Windows Server 2008. Per informazioni sul Service Pack minimo di Windows richiesto da una versione di Windows Installer, vedere Windows Installer Run-Time Requirements .See the Windows Installer requirements for information about the minimum Windows Service Pack that is required by a Windows Installer version.
Piattaforma di destinazione Windows
Intestazione msi.h
Libreria Msi.lib
DLL Msi.dll

Vedi anche

Installazioni di più pacchetti