Compartir a través de


Función NtRecoverEnlistment (wdm.h)

La rutina ZwRecoverEnlistment inicia una operación de recuperación para la transacción asociada a una inscripción especificada.

Sintaxis

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

Parámetros

[in] EnlistmentHandle

Identificador de un objeto de inscripción de obtenido por una llamada anterior a ZwCreateEnlistment o ZwOpenEnlistment. El identificador debe tener ENLISTMENT_RECOVER acceso al objeto .

[in, optional] EnlistmentKey

Puntero al valor de clave de inscripción que el administrador de recursos especificó previamente como parámetro EnlistmentKey para ZwCreateEnlistment. Este parámetro es opcional y se puede null si el administrador de recursos no proporcionó una clave de inscripción cuando llamó a ZwCreateEnlistment.

Valor devuelto

ZwRecoverEnlistment devuelve STATUS_SUCCESS si la operación se realiza correctamente. De lo contrario, esta rutina podría devolver uno de los siguientes valores:

Código devuelto Descripción
STATUS_OBJECT_TYPE_MISMATCH
El identificador especificado no es un identificador para un objeto de inscripción.
STATUS_INVALID_HANDLE
El identificador de objeto no es válido.
STATUS_TRANSACTION_REQUEST_NOT_VALID
La transacción o su inscripción no está en el estado correcto.
STATUS_PENDING
KTM ha agregado una notificación de confirmación, reversión o duda a la cola de notificaciones del administrador de recursos y el administrador de recursos no usa una rutina de devolución de llamada ResourceManagerNotification.
STATUS_ACCESS_DENIED
El autor de la llamada no tiene el acceso adecuado al objeto de inscripción.
 

La rutina puede devolver otros valores NTSTATUS de .

Observaciones

Después de que un administrador de recursos llame a ZwRecoverEnlistment, KTM entrega un TRANSACTION_NOTIFY_COMMIT, TRANSACTION_NOTIFY_ROLLBACK o TRANSACTION_NOTIFY_INDOUBT de notificación para la inscripción. Por lo tanto, a menos que el administrador de recursos use una rutina de devolución de llamada de ResourceManagerNotification, debe llamar inmediatamente a ZwGetNotificationResourceManager si ZwRecoverEnlistment devuelve STATUS_SUCCESS o STATUS_PENDING.

Para obtener más información sobre ZwRecoverEnlistment, consulte Control de operaciones de recuperación.

NtRecoverEnlistment y ZwRecoverEnlistment son dos versiones de la misma rutina de Servicios del sistema nativo de Windows.

En el caso de las llamadas desde controladores en modo kernel, las NtXxx y Zwversiones de Xxx de una rutina de Servicios del sistema nativo de Windows pueden comportarse de forma diferente en la forma en que controlan e interpretan los parámetros de entrada. Para obtener más información sobre la relación entre las versiones de NtXxx y ZwXxx de una rutina, vea Using Nt and Zw Versions of the Native System Services Routines.

Requisitos

Requisito Valor
cliente mínimo admitido Disponible en Windows Vista y versiones posteriores del sistema operativo.
de la plataforma de destino de Universal
encabezado de wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
biblioteca de NtosKrnl.lib
DLL de NtosKrnl.exe
irQL PASSIVE_LEVEL
reglas de cumplimiento de DDI HwStorPortProhibitedDIs, PowerIrpDDis

Consulte también

ResourceManagerNotification

TmRecoverEnlistment

usar versiones Nt y Zw de las rutinas de servicios del sistema nativo

ZwCreateEnlistment

ZwGetNotificationResourceManager

ZwOpenEnlistment