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 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ó anteriormente como parámetro EnlistmentKey en ZwCreateEnlistment. Este parámetro es opcional y puede ser 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án 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 podría devolver otros valores NTSTATUS.

Comentarios

Una vez que un administrador de recursos llama a ZwRecoverEnlistment, KTM entrega una notificación de TRANSACTION_NOTIFY_COMMIT, TRANSACTION_NOTIFY_ROLLBACK o TRANSACTION_NOTIFY_INDOUBT para la inscripción. Por lo tanto, a menos que el administrador de recursos use una rutina de devolución de llamada 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 Windows Native System Services.

En el caso de las llamadas desde controladores en modo kernel, las versiones NtXxx y ZwXxx de una rutina de Windows Native System Services 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 NtXxx y ZwXxx de una rutina, vea Using Nt and Zw Versions of the Native System Services Routines.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible en Windows Vista y versiones posteriores del sistema operativo.
Plataforma de destino Universal
Encabezado wdm.h (incluya Wdm.h, Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Reglas de cumplimiento de DDI HwStorPortProhibitedDIs, PowerIrpDDis

Consulte también

ResourceManagerNotification

TmRecoverEnlistment

Uso de las versiones Nt y Zw de las rutinas nativas de System Services

ZwCreateEnlistment

ZwGetNotificationResourceManager

ZwOpenEnlistment