Compartilhar via


Função CreateEnlistment (ktmw32.h)

Cria uma inscrição, 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 de SECURITY_ATTRIBUTES que contém os atributos de segurança do 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 a 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

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

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.

Valor de retorno

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

Windows Vista: Qualquer tentativa de se inscrever 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:

  • A RM sempre deve solicitar uma 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
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

CommitComplete

commitEnlistment

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

NOTIFICATION_MASK

OpenEnlistment

TRANSACTION_NOTIFICATION