登记对象

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

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

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

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

资源管理器通过调用 ZwClose 关闭其登记对象的句柄。 如果在提交关联的事务对象之前关闭了最后一个句柄,则 KTM 会将TRANSACTION_NOTIFY_ROLLBACK通知发送给具有事务登记的所有资源管理器。

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