登记对象

登记对象表示资源管理器对某个事务的登记。 在资源管理器可以接收有关事务事件的通知之前,资源管理器必须调用 ZwCreateEnlistment 来创建事务的登记。

KTM 提供内核模式资源管理器可以调用的一组登记对象例程。 KTM 还提供一组类似的用户模式例程,用户模式应用程序可以调用。 有关用户模式例程的详细信息,请参阅 Microsoft Windows SDK。

当资源管理器调用 ZwCreateEnlistment 以登记资源管理器收到的事务(通常来自事务客户端)时,KTM 将创建登记对象。

TPS 组件 可以调用 ZwOpenEnlistment 以打开登记对象的其他句柄。 但大多数 TPS 设计不需要额外的开放句柄。

资源管理器通过调用 ZwClose 来关闭针对登记对象的句柄。 如果在提交关联的事务对象之前关闭了最后一个句柄,KTM 会将 TRANSACTION_NOTIFY_ROLLBACK 通知消息发送到所有有该事务注册的资源管理器。

在操作系统关闭最后一个句柄并且KTM释放了对该对象的所有引用后,操作系统将删除该对象。