Listeringsobjekt

Ett listmentobjekt representerar en resurshanterares registrering för en transaktion. Innan en resurshanterare kan ta emot meddelanden om en transaktions händelser måste resurshanteraren anropa ZwCreateEnlistment för att skapa en registrering för transaktionen.

KTM innehåller en uppsättning rutiner för att registrera objekt som resurshanterare i kernelläge kan anropa. KTM tillhandahåller också en liknande uppsättning användarlägesrutiner som användarlägesprogram kan anropa. Mer information om användarlägesrutinerna finns i Microsoft Windows SDK.

KTM skapar ett listment-objekt när en resurshanterare anropar ZwCreateEnlistment för att registrera en transaktion som resurshanteraren har tagit emot (vanligtvis från en transaktionsklient).

TPS-komponenter kan anropa ZwOpenEnlistment för att öppna ytterligare handtag till ett enlistment-objekt. Men de flesta TPS-design kräver inte ytterligare öppna handtag.

Resurshanterare stänger sina handtag till enlistment-objekt genom att anropa ZwClose. Om den sista referensen stängs innan det associerade transaktionsobjektet har committerats skickar KTM meddelanden av typen TRANSACTION_NOTIFY_ROLLBACK till alla resurshanterare som har en anslutning för transaktionen.

Operativsystemet tar bort objektet när det sista handtaget har stängts och KTM har släppt alla sina referenser till objektet.