Função CreateEnlistment (ktmw32.h)

Cria um alistamento, define seu estado inicial e abre um identificador para a inscrição com o acesso especificado.

Sintaxe

HANDLE CreateEnlistment(
  [in, optional] LPSECURITY_ATTRIBUTES lpEnlistmentAttributes,
  [in]           HANDLE                ResourceManagerHandle,
  [in]           HANDLE                TransactionHandle,
  [in]           NOTIFICATION_MASK     NotificationMask,
  [in, optional] DWORD                 CreateOptions,
  [in, optional] PVOID                 EnlistmentKey
);

Parâmetros

[in, optional] lpEnlistmentAttributes

Um ponteiro para uma estrutura SECURITY_ATTRIBUTES que contém os atributos de segurança para o gerenciador de inscrição. Especifique NULL para obter os atributos padrão.

[in] ResourceManagerHandle

Um identificador para o gerenciador de recursos (RM) a ser inscrito.

[in] TransactionHandle

Um identificador para a transação na qual o RM está se inscrevendo.

[in] NotificationMask

As notificações que esta RM está solicitando para o parâmetro TransactionHandle . Para obter uma lista de valores válidos, consulte NOTIFICATION_MASK.

[in, optional] CreateOptions

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

Valor Significado
ENLISTMENT_SUPERIOR
1
Inscreva-se como um gerenciador de transações superior.

[in, optional] EnlistmentKey

Um ponteiro para uma estrutura definida pelo usuário usada pela RM que é retornada quando uma notificação é enviada na estrutura TRANSACTION_NOTIFICATION . Normalmente, isso é usado para associar uma estrutura privada a essa transação específica.

Retornar valor

Se a função for bem-sucedida, o valor retornado será um identificador para a inscriçã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

Windows Vista: Qualquer tentativa de inscrição durante a fase de pré-preparação ou posterior falhará.

Se você não especificar dentro da máscara de notificação que aceita uma solicitação de confirmação de fase única, a KTM sempre executará uma operação de confirmação em duas fases.

Tenha em mente as seguintes regras de notificação ao se inscrever em transações:

  • O RM sempre deve solicitar notificação de reversão.
  • Se as solicitações RM prepararem a notificação, ela também deverá solicitar notificação de confirmação.
  • Se a RM solicitar uma operação de confirmação de fase única, ela também deverá especificar notificações de preparação e confirmação.
  • A única vez que uma RM não é necessária para solicitar notificações de confirmação é quando ela está solicitando pelo menos um par de notificações de preparação e reversão.

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

CommitComplete

CommitEnlistment

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

NOTIFICATION_MASK

OpenEnlistment

TRANSACTION_NOTIFICATION