Função CreateTransaction (ktmw32.h)

Cria um novo objeto de transação.

Sintaxe

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
);

Parâmetros

[in, optional] lpTransactionAttributes

Um ponteiro para uma estrutura SECURITY_ATTRIBUTES que determina se o identificador retornado pode ser herdado por processos filho. Se esse parâmetro for NULL, o identificador não poderá ser herdado.

O membro lpSecurityDescriptor da estrutura especifica um descritor de segurança para o novo evento. Se lpTransactionAttributes for NULL, o objeto receberá um descritor de segurança padrão. As ACL (listas de controle de acesso) no descritor de segurança padrão para uma transação vêm do token primário ou de representação do criador.

[in, optional] UOW

Reservado. Deve ser zero (0).

[in, optional] CreateOptions

Qualquer instrução de transação opcional.

Valor Significado
TRANSACTION_DO_NOT_PROMOTE
A transação não pode ser distribuída.

[in, optional] IsolationLevel

Reservados; especificar zero (0).

[in, optional] IsolationFlags

Reservados; especificar zero (0).

[in, optional] Timeout

O intervalo de tempo limite em milissegundos. Se um valor diferente de zero for especificado, a transação será anulada quando o intervalo passar se ainda não tiver atingido o estado preparado.

Especifique zero (0) ou INFINITE para fornecer um tempo limite infinito.

[in, optional] Description

Uma descrição legível pelo usuário da transação.

Retornar valor

Se a função for bem-sucedida, o valor retornado será um identificador para a transação.

Se houver falha na função, o valor retornado será INVALID_HANDLE_VALUE. Para obter informações de erro estendidas, chame a função GetLastError.

A lista a seguir identifica os possíveis códigos de erro:

Comentários

Use a função CloseHandle para fechar o identificador de transação. Se o último identificador de transação for fechado antes que um cliente chame a função CommitTransaction com o identificador de transação, o KTM reverterá a transação.

Se a transação precisar ser promovível para uma transação distribuída, você deverá conceder os direitos de acesso do DTC (Coordenador de Transações Distribuídas) para se inscrever na transação. Para fazer isso, O parâmetro lpTransactionAttributes precisa conter uma entrada de controle de acesso com o SID do DTC (S-1-5-80-2818357584-3387065753-4000393942-342927828-138088443) e o TRANSACTION_ENLIST direito. Para obter mais informações, consulte Coordenador de Transações Distribuídas e Componentes de Controle de Acesso.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista
Servidor mínimo com suporte Windows Server 2008
Plataforma de Destino Windows
Cabeçalho ktmw32.h
Biblioteca KtmW32.lib
DLL KtmW32.dll

Confira também

Committransaction

Coordenador de Transações Distribuídas

Funções do Gerenciador de Transações do Kernel

RollbackTransaction

SECURITY_ATTRIBUTES

SetTransactionInformation