The Kernel Transaction Manager (KTM) defines the following four object types:
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: