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