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 di 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

Qualsiasi istruzione di transazione facoltativa.

Valore Significato
TRANSACTION_DO_NOT_PROMOTE
La transazione non può essere distribuita.

[in, optional] IsolationLevel

Riservato; specificare zero (0).

[in, optional] IsolationFlags

Riservato; specificare zero (0).

[in, optional] Timeout

Intervallo di timeout, espresso 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 dell'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 estese sull'errore, chiamare la funzione GetLastError .

L'elenco seguente identifica i possibili codici di errore:

Osservazioni

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

Se la transazione potrebbe dover essere promozionale a una transazione distribuita, è necessario concedere i diritti di accesso Distributed Transaction Coordinator (DTC) per l'integrazione 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-28183575)84-3387065753-4000393942-342927828-138088443) e il diritto di TRANSACTION_ENLIST. Per altre informazioni, vedere Distributed Transaction Coordinator e Componenti di controllo di accesso.

Fabbisogno

Requisito Valore
client minimo supportato Windows Vista
server minimo supportato Windows Server 2008
piattaforma di destinazione Finestre
intestazione ktmw32.h
libreria KtmW32.lib
dll KtmW32.dll

Vedere anche

CommitTransaction

Distributed Transaction Coordinator

funzioni di Gestione transazioni kernel

RollbackTransaction

SECURITY_ATTRIBUTES

SetTransactionInformation