Compartilhar via


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 de 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 lpSecurityDescriptor membro da estrutura especifica um de descritor de segurança para o novo evento. Se lpTransactionAttributes for NULL, o objeto obterá 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

Quaisquer instruções de transação opcionais.

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

[in, optional] IsolationLevel

Reservado; especificar zero (0).

[in, optional] IsolationFlags

Reservado; 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 ocorrer 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.

Valor de retorno

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

Se a função falhar, 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:

Observações

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, a 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 Coordenador de Transações Distribuídas (DTC) 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 à direita. Para obter mais informações, consulte coordenador de transações distribuídas e componentes de controle de acesso .

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows Vista
servidor com suporte mínimo Windows Server 2008
da Plataforma de Destino Windows
cabeçalho ktmw32.h
biblioteca KtmW32.lib
de DLL KtmW32.dll

Consulte também

CommitTransaction

coordenador de transações distribuídas

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

RollbackTransaction

SECURITY_ATTRIBUTES

SetTransactionInformation