Compartir a través de


Función NtOpenTransaction (wdm.h)

La rutina de ZwOpenTransaction obtiene un identificador para un objeto de transacción de existente.

Sintaxis

__kernel_entry NTSYSCALLAPI NTSTATUS NtOpenTransaction(
  [out]          PHANDLE            TransactionHandle,
  [in]           ACCESS_MASK        DesiredAccess,
  [in, optional] POBJECT_ATTRIBUTES ObjectAttributes,
  [in]           LPGUID             Uow,
  [in, optional] HANDLE             TmHandle
);

Parámetros

[out] TransactionHandle

Puntero a una variable asignada por el autor de la llamada que recibe un identificador del objeto de transacción si ZwOpenTransaction devuelve STATUS_SUCCESS.

[in] DesiredAccess

Valor ACCESS_MASK que especifica el acceso solicitado del autor de la llamada al objeto de transacción. Para obtener información sobre cómo especificar este parámetro, vea el parámetro DesiredAccess de ZwCreateTransaction.

[in, optional] ObjectAttributes

Puntero a una estructura OBJECT_ATTRIBUTES que especifica los atributos del objeto. Use la rutina de InitializeObjectAttributes para inicializar esta estructura, pero especifique solo los parámetros InitializedAttributes de esa rutina y Atributos. Si el autor de la llamada no se ejecuta en un contexto de subproceso del sistema, debe establecer la marca OBJ_KERNEL_HANDLE en el parámetro atributos . El parámetro ObjectAttributes es opcional y se puede NULL.

[in] Uow

Puntero a un GUID que es el identificador unidad de trabajo (UOW) de un objeto de transacción. Este GUID identifica el objeto de transacción que se va a abrir.

[in, optional] TmHandle

Identificador de un objeto administrador de transacciones. Si este parámetro no es NULL, KTM solo busca objetos de transacción que pertenecen al objeto de administrador de transacciones especificado. Si este parámetro es NULL, KTM busca en todos los objetos de transacción.

Valor devuelto

ZwCreateTransaction 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_INVALID_PARAMETER
El parámetro DesiredAccess o Uow era cero.
STATUS_OBJECT_TYPE_MISMATCH
El identificador especificado no es un identificador para un objeto de transacción.
STATUS_INVALID_HANDLE
Un identificador de objeto no es válido.
STATUS_TRANSACTION_NOT_FOUND
KTM no encontró el objeto de transacción.
STATUS_ACCESS_DENIED
El valor del parámetro DesiredAccess no es válido.
 

La rutina puede devolver otros valores NTSTATUS de .

Observaciones

Normalmente, un administrador de recursos llama a zwOpenTransaction después de recibir una UOW de transacción de un cliente transaccional que anteriormente había llamado ZwCreateTransaction.

Para obtener más información sobre ZwOpenTransaction, vea Creating a Resource Manager.

NtOpenTransaction y ZwOpenTransaction 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, Ntifs.h)
biblioteca de NtosKrnl.lib
DLL de NtosKrnl.exe
irQL PASSIVE_LEVEL
reglas de cumplimiento de DDI HwStorPortProhibitedDIs, PowerIrpDDis

Consulte también

ACCESS_MASK

initializeObjectAttributes

OBJECT_ATTRIBUTES

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

ZwCommitTransaction

ZwCreateTransaction

ZwQueryInformationTransaction

ZwRollbackTransaction