CreateEnlistment 函数 (ktmw32.h)
创建登记,设置其初始状态,并打开具有指定访问权限的登记句柄。
语法
HANDLE CreateEnlistment(
[in, optional] LPSECURITY_ATTRIBUTES lpEnlistmentAttributes,
[in] HANDLE ResourceManagerHandle,
[in] HANDLE TransactionHandle,
[in] NOTIFICATION_MASK NotificationMask,
[in, optional] DWORD CreateOptions,
[in, optional] PVOID EnlistmentKey
);
参数
[in, optional] lpEnlistmentAttributes
指向包含登记管理器安全属性的 SECURITY_ATTRIBUTES 结构的指针。 指定 NULL 以获取默认属性。
[in] ResourceManagerHandle
要登记的资源管理器(RM)的句柄。
[in] TransactionHandle
RM 正在登记的事务的句柄。
[in] NotificationMask
此 RM 请求 TransactionHandle 参数的通知。 有关有效值的列表,请参阅 NOTIFICATION_MASK。
[in, optional] CreateOptions
任何可选的登记说明。
价值 | 意义 |
---|---|
|
登记为高级事务管理器。 |
[in, optional] EnlistmentKey
指向 RM 使用的用户定义的结构的指针,该结构在 TRANSACTION_NOTIFICATION 结构中发送通知时返回。 这通常用于将专用结构与此特定事务相关联。
返回值
如果函数成功,则返回值是登记的句柄。
如果函数失败,则返回值 INVALID_HANDLE_VALUE。 若要获取扩展的错误信息,请调用 GetLastError 函数。
以下列表标识可能的错误代码:
言论
Windows Vista:在预准备阶段或更高版本中登记的任何尝试都将失败。
如果未在接受单阶段提交请求的通知掩码中指定,KTM 始终执行两阶段提交操作。
在事务中登记时,请记住以下通知规则:
- RM 必须始终请求回滚通知。
- 如果 RM 请求准备通知,则还必须请求提交通知。
- 如果 RM 请求单阶段提交操作,则还必须指定准备和提交通知。
- 请求提交通知的唯一时间是请求至少一对准备和回滚通知。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows Vista |
支持的最低服务器 | Windows Server 2008 |
目标平台 | 窗户 |
标头 | ktmw32.h |
库 | KtmW32.lib |
DLL | KtmW32.dll |