Partilhar via


Função NtRecoverEnlistment (wdm.h)

A rotina de ZwRecoverEnlistment inicia uma operação de recuperação para a transação associada a uma inscrição especificada.

Sintaxe

__kernel_entry NTSYSCALLAPI NTSTATUS NtRecoverEnlistment(
  [in]           HANDLE EnlistmentHandle,
  [in, optional] PVOID  EnlistmentKey
);

Parâmetros

[in] EnlistmentHandle

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

[in, optional] EnlistmentKey

Um ponteiro para o valor da chave de inscrição que o gerenciador de recursos especificou anteriormente como o parâmetro EnlistmentKey para ZwCreateEnlistment. Esse parâmetro é opcional e pode ser NULL se o gerenciador de recursos não forneceu uma chave de inscrição quando chamou ZwCreateEnlistment.

Valor de retorno

ZwRecoverEnlistment 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_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_TRANSACTION_REQUEST_NOT_VALID
A transação ou sua inscrição não está no estado correto.
STATUS_PENDING
A KTM adicionou uma notificação de confirmação, reversão ou dúvida à fila de notificação do gerenciador de recursos e o gerenciador de recursos não está usando um ResourceManagerNotification rotina de retorno de chamada.
STATUS_ACCESS_DENIED
O chamador não tem acesso apropriado ao objeto de inscrição.
 

A rotina pode retornar outros valores NTSTATUS .

Observações

Depois que um gerenciador de recursos chama ZwRecoverEnlistment, a KTM entrega um TRANSACTION_NOTIFY_COMMIT, TRANSACTION_NOTIFY_ROLLBACK ou TRANSACTION_NOTIFY_INDOUBT de notificação para a inscrição. Portanto, a menos que o gerenciador de recursos esteja usando uma rotina de retorno de chamada ResourceManagerNotification, ele deverá chamar imediatamente ZwGetNotificationResourceManager se ZwRecoverEnlistment retornar STATUS_SUCCESS ou STATUS_PENDING.

Para obter mais informações sobre ZwRecoverEnlistment, consulte Handling Recovery Operations.

NtRecoverEnlistment e ZwRecoverEnlistment 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, Ntddk.h, Ntifs.h)
biblioteca NtosKrnl.lib
de DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
regras de conformidade de DDI HwStorPortProhibitedDIs, PowerIrpDDis

Consulte também

ResourceManagerNotification

TmRecoverEnlistment

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

ZwCreateEnlistment

ZwGetNotificationResourceManager

ZwOpenEnlistment