Функция 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
[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 |
целевая платформа | Виндоус |
заголовка | ktmw32.h |
библиотеки |
KtmW32.lib |
DLL | KtmW32.dll |
См. также
координатор распределенных транзакций
Функции диспетчера транзакций ядра