Condividi tramite


Funzione CreateTransaction (ktmw32.h)

Crea un nuovo oggetto transazione.

Sintassi

HANDLE CreateTransaction(
  [in, optional] LPSECURITY_ATTRIBUTES lpTransactionAttributes,
  [in, optional] LPGUID                UOW,
  [in, optional] DWORD                 CreateOptions,
  [in, optional] DWORD                 IsolationLevel,
  [in, optional] DWORD                 IsolationFlags,
  [in, optional] DWORD                 Timeout,
  [in, optional] LPWSTR                Description
);

Parametri

[in, optional] lpTransactionAttributes

Puntatore a una struttura SECURITY_ATTRIBUTES che determina se l'handle restituito può essere ereditato dai processi figlio. Se questo parametro è NULL, l'handle non può essere ereditato.

Il membro lpSecurityDescriptor della struttura specifica un descrittore di sicurezza per il nuovo evento. Se lpTransactionAttributes è NULL, l'oggetto ottiene un descrittore di sicurezza predefinito. Gli elenchi di controllo di accesso (ACL) nel descrittore di sicurezza predefinito per una transazione provengono dal token primario o di rappresentazione dell'autore.

[in, optional] UOW

Riservato. Deve essere zero (0).

[in, optional] CreateOptions

Tutte le istruzioni facoltative sulle transazioni.

Valore Significato
TRANSACTION_DO_NOT_PROMOTE
Impossibile distribuire la transazione.

[in, optional] IsolationLevel

Riservati; specificare zero (0).

[in, optional] IsolationFlags

Riservati; specificare zero (0).

[in, optional] Timeout

Intervallo di timeout, in millisecondi. Se viene specificato un valore diverso da zero, la transazione verrà interrotta al termine dell'intervallo se non ha già raggiunto lo stato preparato.

Specificare zero (0) o INFINITE per fornire un timeout infinito.

[in, optional] Description

Descrizione leggibile dall'utente della transazione.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è un handle per la transazione.

Se la funzione ha esito negativo, il valore restituito è INVALID_HANDLE_VALUE. Per ottenere informazioni sull'errore estese, chiamare la funzione GetLastError .

L'elenco seguente identifica i possibili codici di errore:

Commenti

Usare la funzione CloseHandle per chiudere l'handle delle transazioni. Se l'ultimo handle di transazione viene chiuso prima che un client chiami la funzione CommitTransaction con l'handle delle transazioni, KTM esegue il rollback della transazione.

Se la transazione potrebbe essere promozionale a una transazione distribuita, è necessario concedere i diritti di accesso Distributed Transaction Coordinator (DTC) per l'inserimento nella transazione. A tale scopo, il parametro lpTransactionAttributes deve contenere una voce di controllo di accesso con il SID del DTC (S-1-5-80-28183575844-3387065753-400039393942-342927828-13808443) e il diritto di TRANSACTION_ENLIST. Per altre informazioni, vedere Distributed Transaction Coordinator e Controllo di accesso Components.

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

CommitTransaction

Distributed Transaction Coordinator

Funzioni di Gestione transazioni kernel

RollbackTransaction

SECURITY_ATTRIBUTES

SetTransactionInformation