다음을 통해 공유


TmCommitEnlistment 함수(wdm.h)

TmCommitEnlistment 루틴은 지정된 인리스트먼트의 트랜잭션에 대한 커밋 작업을 시작합니다.

구문

NTSTATUS TmCommitEnlistment(
  [in] PKENLISTMENT   Enlistment,
  [in] PLARGE_INTEGER TmVirtualClock
);

매개 변수

[in] Enlistment

인리스트먼트 개체에 대한 포인터입니다. 구성 요소는 ResourceManagerNotification 콜백 루틴에 대한 입력으로 이 포인터를 받을 수 있습니다. 또는 구성 요소가 ObReferenceObjectByHandle을 호출하고 이전에 ZwCreateEnlistment, TmCreateEnlistment 또는 ZwOpenEnlistment를 호출한 개체 핸들을 제공할 수 있습니다.

[in] TmVirtualClock

가상 클록 값에 대한 포인터입니다. 이 매개 변수는 선택 사항이며 NULL일 수 있습니다.

반환 값

TmCommitEnlistment는 작업이 성공하면 STATUS_SUCCESS 반환합니다. 그렇지 않으면 이 루틴이 다음 값 중 하나를 반환할 수 있습니다.

반환 코드 설명
STATUS_ENLISTMENT_NOT_SUPERIOR
호출자는 인리스트먼트에 대한 우수한 트랜잭션 관리자 가 아닙니다.
STATUS_TRANSACTION_RESPONSE_NOT_ENLISTED
호출자가 TRANSACTION_NOTIFY_COMMIT_COMPLETE 알림을 받도록 등록하지 않았습니다.
STATUS_TRANSACTION_REQUEST_NOT_VALID
인리스트먼트의 트랜잭션이 커밋될 수 있는 상태가 아닙니다.
STATUS_TRANSACTION_NOT_ACTIVE
이 트랜잭션에 대한 커밋 작업이 이미 시작되었습니다.
STATUS_TRANSACTION_ALREADY_ABORTED
트랜잭션이 롤백되었기 때문에 커밋할 수 없습니다.
 

루틴은 다른 NTSTATUS 값을 반환할 수 있습니다.

설명

TmCommitEnlistment 루틴은 ZwCommitEnlistment 루틴의 포인터 기반 버전입니다.

우수한 트랜잭션 관리자만 TmCommitEnlistment를 호출할 수 있습니다.

Zw Xxx 루틴 대신 KTM의 TmXxx 루틴을 사용하는 경우에 대한 자세한 내용은 TmXxx 루틴 사용을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista 이상 운영 체제 버전에서 사용할 수 있습니다.
대상 플랫폼 유니버설
헤더 wdm.h(Wdm.h, Ntddk.h, Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL

추가 정보

ObReferenceObjectByHandle

ResourceManagerNotification

TmCreateEnlistment

ZwCommitEnlistment

ZwCreateEnlistment

ZwOpenEnlistment