KTM Objects
The Kernel Transaction Manager (KTM) defines the following four object types:
Transaction manager objects, which KTM uses to maintain memory-resident information about a log stream for a transaction processing system (TPS).
Resource manager objects, which represent the resource managers within a TPS.
Transaction objects, which represent the transactions that transactional clients create.
Enlistment objects, which represent enlistments that provide connections between transactions and resource managers.
These four object types all have the following characteristics:
To create an object and obtain an object handle, TPS components can call a create routine.
To obtain additional object handles to an existing object, TPS components can call an open routine.
To obtain information about an object, TPS components can call a query routine.
To close an object handle, TPS components call ZwClose.
KTM assigns an identifier GUID to each object. For transaction objects, this identifier GUID is also known as a unit of work (UOW) identifier that clients can specify. TPS components can use the identifier GUIDs to track objects. A TPS component that creates an object can pass the object's identifier GUID to another component so that the latter component can open a handle to the object.
Any TPS component that uses KTM can call ZwEnumerateTransactionObject to enumerate KTM objects, but most components do not have to call this routine.
This section contains the following topics: