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
任何可选的事务指令。
价值 | 意义 |
---|---|
|
无法分发事务。 |
[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 的 SID(S-1-5-80-2818357)包含访问控制项 584-3387065753-4000393942-342927828-138088443)和TRANSACTION_ENLIST权限。 有关详细信息,请参阅 分布式事务处理协调器 和 访问控制组件。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows Vista |
支持的最低服务器 | Windows Server 2008 |
目标平台 | 窗户 |
标头 | ktmw32.h |
库 | KtmW32.lib |
DLL | KtmW32.dll |