Función NtOpenTransaction (wdm.h)
La rutina ZwOpenTransaction obtiene un identificador para un objeto de transacción 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 para el objeto de transacción si ZwOpenTransaction devuelve STATUS_SUCCESS.
[in] DesiredAccess
Valor de 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 InitializeObjectAttributes para inicializar esta estructura, pero especifique solo los parámetros InitializedAttributes y Attributes de la rutina. 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 Attributes . El parámetro ObjectAttributes es opcional y puede ser NULL.
[in] Uow
Puntero a un GUID que es el identificador de 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 de administrador de transacciones. Si este parámetro no es NULL, KTM solo busca objetos de transacción que pertenezcan 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 |
---|---|
|
El parámetro DesiredAccess o Uow era cero. |
|
El identificador especificado no es un identificador para un objeto de transacción. |
|
Un identificador de objeto no es válido. |
|
KTM no encontró el objeto de transacción. |
|
El valor del parámetro DesiredAccess no es válido. |
La rutina podría devolver otros valores NTSTATUS.
Comentarios
Normalmente, un administrador de recursos llama a ZwOpenTransaction después de recibir una transacción UOW 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 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, Ntifs.h) |
Library | NtosKrnl.lib |
Archivo DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
Reglas de cumplimiento de DDI | HwStorPortProhibitedDIs, PowerIrpDDis |
Consulte también
Uso de las versiones Nt y Zw de las rutinas nativas de System Services