Функция 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 структуры задает дескриптор безопасности для нового события. Если lpTransactionAttributes имеет значение NULL, объект получает дескриптор безопасности по умолчанию. Списки управления доступом (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
Целевая платформа Windows
Header ktmw32.h
Библиотека KtmW32.lib
DLL KtmW32.dll

См. также раздел

CommitTransaction

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

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

RollbackTransaction

SECURITY_ATTRIBUTES

SetTransactionInformation