事务管理器对象
事务管理器对象的main用途是创建和维护 KTM 用于记录事务状态信息的通用日志文件系统 (CLFS) 日志流。
事务管理器对象还包含 KTM 维护的 虚拟时钟值 ,用于对对象的日志流中的信息进行排序。
KTM 提供一组事务管理器对象例程,内核模式 TPS 组件 可以调用这些例程。 KTM 还提供一组类似的用户模式例程,用户模式应用程序可以调用这些例程。 有关用户模式例程的详细信息,请参阅Microsoft Windows SDK。
当资源管理器调用 ZwCreateTransactionManager 时,KTM 会创建事务管理器对象。 通常,TPS 中的每个资源管理器都会创建一个事务管理器对象。 但也可以设计一个 TPS,其中多个资源管理器共享单个事务管理器对象。
TPS 组件可以通过调用 ZwOpenTransactionManager 向现有事务管理器对象打开其他句柄。 例如,如果 TPS 具有多个共享单个事务管理器对象的资源管理器,则一个资源管理器调用 ZwCreateTransactionManager ,然后将对象 GUID 传递给其他资源管理器,以便他们可以调用 ZwOpenTransactionManager。
资源管理器通过调用 ZwClose 关闭事务管理器对象的句柄。
操作系统在最后一个句柄关闭后删除对象,KTM 已释放其对对象的所有引用。