Compartilhar via


Função NtPrepareEnlistment (wdm.h)

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

Sintaxe

__kernel_entry NTSYSCALLAPI NTSTATUS NtPrepareEnlistment(
  [in]           HANDLE         EnlistmentHandle,
  [in, optional] PLARGE_INTEGER TmVirtualClock
);

Parâmetros

[in] EnlistmentHandle

Um identificador de um objeto de inscrição obtido por uma chamada anterior para ZwCreateEnlistment ou ZwOpenEnlistment. O objeto deve representar um de inscrição superior e o identificador deve ter ENLISTMENT_SUPERIOR_RIGHTS acesso ao objeto.

[in, optional] TmVirtualClock

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

Valor de retorno

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

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

A rotina pode retornar outros valores NTSTATUS .

Observações

Somente os gerentes de transações superiores podem chamar ZwPrepareEnlistment.

A rotina de ZwPrepareEnlistment faz com que a KTM envie TRANSACTION_NOTIFY_PREPARE notificações para todos os gerenciadores de recursos que se inscreveram na transação.

Os chamadores de ZwPrepareEnlistment devem se registrar para receber TRANSACTION_NOTIFY_PREPARE_COMPLETE notificações.

Para obter mais informações sobre ZwPrepareEnlistment, consulte Criando um superior do Gerenciador de Transações e tratando operações de confirmação.

NtPrePrepareEnlistment e ZwPrePrepareEnlistment são duas versões da mesma rotina dos Serviços de Sistema Nativo do Windows.

Para chamadas de drivers no modo kernel, as versões NtXxx e Zwxxx versões de uma rotina dos Serviços de Sistema Nativo do Windows podem se comportar de forma diferente na maneira como lidam e interpretam parâmetros de entrada. Para obter mais informações sobre a relação entre as versões NtXxx e ZwXxx de uma rotina, consulte Usando versões Nt e Zw das rotinas de serviços do sistema nativo.

Requisitos

Requisito Valor
de cliente com suporte mínimo Disponível no Windows Vista e versões posteriores do sistema operacional.
da Plataforma de Destino Universal
cabeçalho wdm.h (include Wdm.h, Ntifs.h)
biblioteca NtosKrnl.lib
de DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
regras de conformidade de DDI HwStorPortProhibitedDIs, PowerIrpDDis

Consulte também

TmPrepareEnlistment

usando versões Nt e Zw das rotinas de serviços do sistema nativo

ZwCreateEnlistment

ZwOpenEnlistment