Funzione CreateEnlistment (ktmw32.h)
Crea un'integrazione, ne imposta lo stato iniziale e apre un handle all'integrazione con l'accesso specificato.
Sintassi
HANDLE CreateEnlistment(
[in, optional] LPSECURITY_ATTRIBUTES lpEnlistmentAttributes,
[in] HANDLE ResourceManagerHandle,
[in] HANDLE TransactionHandle,
[in] NOTIFICATION_MASK NotificationMask,
[in, optional] DWORD CreateOptions,
[in, optional] PVOID EnlistmentKey
);
Parametri
[in, optional] lpEnlistmentAttributes
Puntatore a una struttura SECURITY_ATTRIBUTES che contiene gli attributi di sicurezza per il gestore dell'integrazione. Specificare NULL per ottenere gli attributi predefiniti.
[in] ResourceManagerHandle
Handle per resource manager (RM) da integrare.
[in] TransactionHandle
Handle per la transazione in cui viene integrato l'RM.
[in] NotificationMask
Le notifiche richieste da questo RM per il parametro TransactionHandle . Per un elenco di valori validi, vedere NOTIFICATION_MASK.
[in, optional] CreateOptions
Qualsiasi istruzione facoltativa per l'integrazione.
Valore | Significato |
---|---|
|
Integrare come gestore delle transazioni superiore. |
[in, optional] EnlistmentKey
Puntatore a una struttura definita dall'utente utilizzata dall'RM restituita quando viene inviata una notifica nella struttura TRANSACTION_NOTIFICATION . Questa operazione viene in genere utilizzata per associare una struttura privata a questa transazione specifica.
Valore restituito
Se la funzione ha esito positivo, il valore restituito è un handle per l'integrazione.
Se la funzione ha esito negativo, il valore restituito viene INVALID_HANDLE_VALUE. Per ottenere informazioni sull'errore estese, chiamare la funzione GetLastError .
L'elenco seguente identifica i possibili codici di errore:
Commenti
Windows Vista: Qualsiasi tentativo di integrazione durante la fase di pre-preparazione o versione successiva avrà esito negativo.
Se non si specifica all'interno della maschera di notifica che si accetta una richiesta di commit a fase singola, KTM esegue sempre un'operazione di commit in due fasi.
Quando si esegue l'integrazione nelle transazioni, tenere presenti le regole di notifica seguenti:
- L'RM deve sempre richiedere la notifica di rollback.
- Se l'RM richiede la notifica di preparazione, deve anche richiedere la notifica di commit.
- Se rm richiede un'operazione di commit a singola fase, deve specificare anche le notifiche di preparazione e commit.
- L'unica volta che un RM non è necessario per richiedere notifiche di commit è quando richiede almeno una coppia di notifiche di preparazione e rollback.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Vista |
Server minimo supportato | Windows Server 2008 |
Piattaforma di destinazione | Windows |
Intestazione | ktmw32.h |
Libreria | KtmW32.lib |
DLL | KtmW32.dll |