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 |
---|---|
|
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
Coordenador de Transações Distribuídas