Функция 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
Любые необязательные инструкции по транзакциям.
Значение | Значение |
---|---|
|
Транзакция не может быть распределена. |
[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 |
См. также раздел
Координатор распределенных транзакций