인리스트먼트 개체
인리스트먼트 개체는 트랜잭션에 대한 리소스 관리자의 인리스트먼트를 나타냅니다. 리소스 관리자가 트랜잭션 이벤트에 대한 알림을 받으려면 먼저 리소스 관리자가 ZwCreateEnlistment 를 호출하여 트랜잭션에 대한 인리스트먼트를 만들어야 합니다.
KTM은 커널 모드 리소스 관리자가 호출할 수 있는 인리스트먼트 개체 루틴 집합을 제공합니다. 또한 KTM은 사용자 모드 애플리케이션에서 호출할 수 있는 유사한 사용자 모드 루틴 집합을 제공합니다. 사용자 모드 루틴에 대한 자세한 내용은 Microsoft Windows SDK.
KTM은 리소스 관리자가 ZwCreateEnlistment 를 호출하여 리소스 관리자가 받은 트랜잭션(일반적으로 트랜잭션 클라이언트에서)에 등록할 때 인리스트먼트 개체를 만듭니다.
TPS 구성 요소는ZwOpenEnlistment 를 호출하여 인리스트먼트 개체에 대한 추가 핸들을 열 수 있습니다. 그러나 대부분의 TPS 디자인에는 추가적인 열린 핸들이 필요하지 않습니다.
리소스 관리자는 ZwClose를 호출하여 인리스트먼트 개체에 대한 핸들을 닫습니다. 연결된 트랜잭션 개체가 커밋되기 전에 마지막 핸들이 닫힌 경우 KTM은 트랜잭션에 대한 인리스트먼트가 있는 모든 리소스 관리자에게 TRANSACTION_NOTIFY_ROLLBACK 알림을 보냅니다.
운영 체제는 마지막 핸들을 닫고 KTM이 개체에 대한 모든 참조를 해제한 후 개체를 삭제합니다.