Поделиться через


Функция CreateTransaction (ktmw32.h)

Создает новый объект транзакции.

Синтаксис

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
);

Параметры

[in, optional] lpTransactionAttributes

Указатель на структуру SECURITY_ATTRIBUTES, которая определяет, может ли возвращаемый дескриптор наследоваться дочерними процессами. Если этот параметр null, то дескриптор не может быть унаследован.

Элемент lpSecurityDescriptor указывает дескриптор безопасности для нового события. Если lpTransactionAttributesNULL, объект получает дескриптор безопасности по умолчанию. Списки управления доступом (ACL) в дескрипторе безопасности по умолчанию для транзакции приходят из первичного или олицетворения маркера создателя.

[in, optional] UOW

Скрытный. Должно быть равно нулю (0).

[in, optional] CreateOptions

Любые необязательные инструкции по транзакциям.

Ценность Значение
TRANSACTION_DO_NOT_PROMOTE
Транзакция не может быть распределена.

[in, optional] IsolationLevel

Скрытный; укажите ноль (0).

[in, optional] IsolationFlags

Скрытный; укажите ноль (0).

[in, optional] Timeout

Интервал времени ожидания в миллисекундах. Если указано ненулевое значение, транзакция будет прервана, если интервал истекает, если он еще не достиг подготовленного состояния.

Укажите ноль (0) или INFINITE для предоставления бесконечного времени ожидания.

[in, optional] Description

Описание транзакции, доступной для чтения пользователем.

Возвращаемое значение

Если функция выполнена успешно, возвращаемое значение является дескриптором транзакции.

Если функция завершается ошибкой, возвращаемое значение INVALID_HANDLE_VALUE. Чтобы получить расширенные сведения об ошибке, вызовите функцию getLastError .

Следующий список определяет возможные коды ошибок:

Замечания

Используйте функцию CloseHandle, чтобы закрыть дескриптор транзакции. Если последний дескриптор транзакции закрыт, прежде чем клиент вызывает функцию CommitTransaction с дескриптором транзакции, KTM откатывает транзакцию.

Если транзакция может быть промотируемой для распределенной транзакции, необходимо предоставить координатору распределенных транзакций права доступа (DTC) для включения в транзакцию. Для этого параметру lpTransactionAttributes необходимо содержать запись управления доступом с идентификатором безопасности DTC (S-1-5-80-2818357584-3387065753-4000393942-342927828-138088443) и право TRANSACTION_ENLIST. Дополнительные сведения см. в координатор распределенных транзакций и компонентах управления доступом.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows Vista
минимальный поддерживаемый сервер Windows Server 2008
целевая платформа Виндоус
заголовка ktmw32.h
библиотеки KtmW32.lib
DLL KtmW32.dll

См. также

CommitTransaction

координатор распределенных транзакций

Функции диспетчера транзакций ядра

RollbackTransaction

SECURITY_ATTRIBUTES

SetTransactionInformation