Compartir a través de


Función NtPrepareEnlistment (wdm.h)

La rutina ZwPrepareEnlistment inicia la operación de preparación previa para una transacción de inscripción especificada.

Sintaxis

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

Parámetros

[in] EnlistmentHandle

Identificador de un objeto de inscripción obtenido por una llamada anterior a ZwCreateEnlistment o ZwOpenEnlistment. El objeto debe representar una inscripción superior y el identificador debe tener ENLISTMENT_SUPERIOR_RIGHTS acceso al objeto.

[in, optional] TmVirtualClock

Puntero a un valor de reloj virtual. Este parámetro es opcional y puede ser NULL.

Valor devuelto

ZwPrepareEnlistment 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_ENLISTMENT_NOT_SUPERIOR
El autor de la llamada no es un administrador de transacciones superior para la inscripción.
STATUS_TRANSACTION_RESPONSE_NOT_ENLISTED
El autor de la llamada no se registró para recibir notificaciones de TRANSACTION_NOTIFY_PREPREPARE_COMPLETE.
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_ACCESS_DENIED
El autor de la llamada no tiene el acceso adecuado al objeto de inscripción.
STATUS_TRANSACTION_REQUEST_NOT_VALID
La transacción de la inscripción no está en un estado que le permita entrar en la fase de preparación.
 

La rutina podría devolver otros valores NTSTATUS.

Comentarios

Solo los administradores de transacciones superiores pueden llamar a ZwPrepareEnlistment.

Los autores de llamadas de ZwPrepareEnlistment deben registrarse para recibir notificaciones TRANSACTION_NOTIFY_PREPREPARE_COMPLETE.

La rutina ZwPrepareEnlistment hace que KTM envíe TRANSACTION_NOTIFY_PREPREPARE notificaciones a todos los administradores de recursos que se han inscrito en la transacción.

Para obtener más información sobre ZwPrePrepareEnlistment, vea Crear un administrador de transacciones superior y controlar las operaciones de confirmación.

NtPrepareEnlistment y ZwPrepareEnlistment 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 versiones NtXxx y ZwXxx de una rutina de Servicios del sistema nativo de Windows se pueden comportar 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, Ntifs.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Reglas de cumplimiento de DDI HwStorPortProhibitedDIs, PowerIrpDDis

Consulte también

TmPrepareEnlistment

Uso de las versiones Nt y Zw de las rutinas nativas de Servicios del sistema

ZwCreateEnlistment

ZwOpenEnlistment