Compartir a través de


Función NtOpenTransactionManager (wdm.h)

La rutina ZwOpenTransactionManager obtiene un identificador para un objeto de administrador de transacciones existente.

Sintaxis

__kernel_entry NTSYSCALLAPI NTSTATUS NtOpenTransactionManager(
  [out]          PHANDLE            TmHandle,
  [in]           ACCESS_MASK        DesiredAccess,
  [in, optional] POBJECT_ATTRIBUTES ObjectAttributes,
  [in, optional] PUNICODE_STRING    LogFileName,
  [in, optional] LPGUID             TmIdentity,
  [in, optional] ULONG              OpenOptions
);

Parámetros

[out] TmHandle

Puntero a una variable asignada por el autor de la llamada que recibe un identificador del objeto del administrador de transacciones si ZwOpenTransactionManager devuelve STATUS_SUCCESS.

[in] DesiredAccess

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

[in, optional] ObjectAttributes

Puntero a una estructura OBJECT_ATTRIBUTES que especifica el nombre del objeto y otros atributos. Use la rutina de InitializeObjectAttributes para inicializar esta estructura. Si el autor de la llamada no se ejecuta en un contexto de subproceso del sistema, debe establecer el atributo OBJ_KERNEL_HANDLE cuando llama a InitializeObjectAttributes. Este parámetro es opcional y se puede NULL.

[in, optional] LogFileName

Puntero a una estructura de UNICODE_STRING que contiene la ruta de acceso y el nombre de archivo del flujo de archivos de registro de que se creó cuando se creó el objeto del administrador de transacciones. Para obtener más información, vea el parámetro LogFileName de ZwCreateTransactionManager. Este parámetro es opcional y se puede NULL.

[in, optional] TmIdentity

Puntero a un GUID que identifica el objeto del administrador de transacciones. Este parámetro es opcional y se puede NULL.

[in, optional] OpenOptions

Este parámetro no se usa y debe ser cero.

Valor devuelto

ZwOpenTransactionManager 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 valor de un parámetro de entrada no es válido.
STATUS_INSUFFICIENT_RESOURCES
KTM no pudo asignar recursos del sistema (normalmente memoria).
STATUS_OBJECT_NAME_INVALID
El nombre de objeto que especifica el parámetro ObjectAttributes no es válido.
STATUS_LOG_CORRUPTION_DETECTED
KTM encontró un error al crear o abrir el archivo de registro.
STATUS_ACCESS_DENIED
El valor del parámetro DesiredAccess no es válido.
 

La rutina puede devolver otros valores NTSTATUS de .

Observaciones

El autor de la llamada puede identificar qué objeto de administrador de transacciones se va a abrir mediante una de las tres técnicas siguientes:

  • Use el parámetro LogFileName para especificar la ruta de acceso y el nombre de archivo de una secuencia de archivos de registro que se creó cuando se creó el objeto del administrador de transacciones.
  • Use el parámetro TmIdentity para especificar el GUID que identifica el objeto del administrador de transacciones.
  • Use el parámetro objectAttributes de para proporcionar una estructura OBJECT_ATTRIBUTES que contiene el nombre de objeto que el autor de la llamada especificó anteriormente en la rutina de ZwCreateTransactionManager.
Debe especificar solo uno de los parámetros enumerados anteriormente (un nombre de objeto, un nombre de archivo de registro o un GUID) y establecer los otros dos parámetros en NULL.

El componente TPS debe llamar a ZwRecoverTransactionManager después de llamar a ZwOpenTransactionManager.

Un componente TPS que llama a ZwOpenTransactionManager debe llamar finalmente a ZwClose para cerrar el identificador de objeto.

Para obtener más información sobre cómo usar ZwOpenTransactionManager, consulte Objetos del Administrador de transacciones y Creación de unde Resource Manager.

NtOpenTransactionManager y ZwOpenTransactionManager 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

initializeObjectAttributes

OBJECT_ATTRIBUTES

UNICODE_STRING

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

ZwClose

ZwCreateTransactionManager

ZwQueryInformationTransactionManager