Función CreateTransaction (ktmw32.h)

Crea un nuevo objeto de transacción.

Sintaxis

HANDLE CreateTransaction(
  [in, optional] LPSECURITY_ATTRIBUTES lpTransactionAttributes,
  [in, optional] LPGUID                UOW,
  [in, optional] DWORD                 CreateOptions,
  [in, optional] DWORD                 IsolationLevel,
  [in, optional] DWORD                 IsolationFlags,
  [in, optional] DWORD                 Timeout,
  [in, optional] LPWSTR                Description
);

Parámetros

[in, optional] lpTransactionAttributes

Puntero a una estructura de SECURITY_ATTRIBUTES que determina si los procesos secundarios pueden heredar el identificador devuelto. Si este parámetro es NULL, no se puede heredar el identificador.

El miembro lpSecurityDescriptor de la estructura especifica un descriptor de seguridad para el nuevo evento. Si lpTransactionAttributes es NULL, el objeto obtiene un descriptor de seguridad predeterminado. Las listas de control de acceso (ACL) del descriptor de seguridad predeterminado para una transacción proceden del token principal o de suplantación del creador.

[in, optional] UOW

Reservado. Debe ser cero (0).

[in, optional] CreateOptions

Cualquier instrucción de transacción opcional.

Valor Significado
TRANSACTION_DO_NOT_PROMOTE
No se puede distribuir la transacción.

[in, optional] IsolationLevel

Reservados; especifique cero (0).

[in, optional] IsolationFlags

Reservados; especifique cero (0).

[in, optional] Timeout

El intervalo de tiempo de espera en milisegundos. Si se especifica un valor distinto de cero, la transacción se anulará cuando transcurre el intervalo si aún no ha alcanzado el estado preparado.

Especifique cero (0) o INFINITE para proporcionar un tiempo de espera infinito.

[in, optional] Description

Descripción legible por el usuario de la transacción.

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es un identificador de la transacción.

Si se produce un error en la función, el valor devuelto es INVALID_HANDLE_VALUE. Para obtener información ampliada de los errores, llame a la función GetLastError.

En la lista siguiente se identifican los posibles códigos de error:

Comentarios

Use la función CloseHandle para cerrar el identificador de transacción. Si el último identificador de transacción se cierra antes de que un cliente llame a la función CommitTransaction con el identificador de transacción, KTM revierte la transacción.

Si es posible que la transacción tenga que ser promocionable a una transacción distribuida, debe conceder derechos de acceso al Coordinador de transacciones distribuidas (DTC) para inscribirse en la transacción. Para ello, el parámetro lpTransactionAttributes debe contener una entrada de control de acceso con el SID del DTC (S-1-5-80-2818357584-3387065753-4000393942-342927828-138088443) y la TRANSACTION_ENLIST derecha. Para obtener más información, vea Coordinador de transacciones distribuidas y componentes de Access Control.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista
Servidor mínimo compatible Windows Server 2008
Plataforma de destino Windows
Encabezado ktmw32.h
Library KtmW32.lib
Archivo DLL KtmW32.dll

Consulte también

CommitTransaction

Coordinador de transacciones distribuidas

Funciones del Administrador de transacciones de kernel

RollbackTransaction

SECURITY_ATTRIBUTES

SetTransactionInformation