Compartir a través de


Función NtPrepareEnlistment (wdm.h)

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

Sintaxis

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

Parámetros

[in] EnlistmentHandle

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

[in, optional] TmVirtualClock

Puntero a un valor de reloj virtual . Este parámetro es opcional y se puede 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 TRANSACTION_NOTIFY_PREPARE_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 puede devolver otros valores NTSTATUS de .

Observaciones

Solo los administradores de transacciones superiores pueden llamar a ZwPrepareEnlistment.

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

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

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

NtPrePrepareEnlistment y ZwPrePrepareEnlistment son dos versiones de la misma rutina de Servicios de 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, Ntifs.h)
biblioteca de NtosKrnl.lib
DLL de NtosKrnl.exe
irQL PASSIVE_LEVEL
reglas de cumplimiento de DDI HwStorPortProhibitedDIs, PowerIrpDDis

Consulte también

tmPrepareEnlistment

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

ZwCreateEnlistment

ZwOpenEnlistment