Condividi tramite


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
ENLISTMENT_SUPERIOR
1
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

Vedi anche

CommitComplete

CommitEnlistment

Funzioni di Gestione transazioni kernel

NOTIFICATION_MASK

OpenEnlistment

TRANSACTION_NOTIFICATION