Compartilhar via


Função TmPrepareEnlistment (wdm.h)

A rotina TmPrepareEnlistment inicia a operação de preparação para uma transação de inscrição especificada.

Sintaxe

NTSTATUS TmPrepareEnlistment(
  [in] PKENLISTMENT   Enlistment,
  [in] PLARGE_INTEGER TmVirtualClock
);

Parâmetros

[in] Enlistment

Um ponteiro para um objeto de inscrição. Seu componente pode receber esse ponteiro como entrada para uma rotina de retorno de chamada ResourceManagerNotification . Como alternativa, seu componente pode chamar ObReferenceObjectByHandle e fornecer o identificador de objeto fornecido por uma chamada anterior para ZwCreateEnlistment, TmCreateEnlistment ou ZwOpenEnlistment .

[in] TmVirtualClock

Um ponteiro para um valor de relógio virtual. Esse parâmetro é opcional e pode ser NULL.

Retornar valor

TmPrepareEnlistment retornará STATUS_SUCCESS se a operação for bem-sucedida. Caso contrário, essa rotina pode retornar um dos seguintes valores:

Código de retorno Descrição
STATUS_ENLISTMENT_NOT_SUPERIOR
O chamador não é um gerenciador de transações superior para a inscrição.
STATUS_TRANSACTION_RESPONSE_NOT_ENLISTED
O chamador não se registrou para receber TRANSACTION_NOTIFY_PREPARE_COMPLETE notificações.
STATUS_TRANSACTION_REQUEST_NOT_VALID
A transação da inscrição não está em um estado que permite que ela entre na fase de preparação.
STATUS_ACCESS_DENIED
O chamador não tem acesso apropriado ao objeto de inscrição.
 

A rotina pode retornar outros valores NTSTATUS.

Comentários

A rotina TmPrepareEnlistment é uma versão baseada em ponteiro da rotina ZwPrepareEnlistment .

Somente gerenciadores de transações superiores podem chamar TmPrepareEnlistment.

Para obter informações sobre quando usar as rotinas TmXxx da KTM em vez de rotinas ZwXxx , consulte Usando rotinas TmXxx.

Requisitos

Requisito Valor
Cliente mínimo com suporte Disponível no Windows Vista e versões posteriores do sistema operacional.
Plataforma de Destino Universal
Cabeçalho wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL

Confira também

ObReferenceObjectByHandle

ResourceManagerNotification

TmCreateEnlistment

ZwCreateEnlistment

ZwOpenEnlistment

ZwPrepareEnlistment