다음을 통해 공유


NtCommitEnlistment 함수(wdm.h)

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

통사론

__kernel_entry NTSYSCALLAPI NTSTATUS NtCommitEnlistment(
  [in]           HANDLE         EnlistmentHandle,
  [in, optional] PLARGE_INTEGER TmVirtualClock
);

매개 변수

[in] EnlistmentHandle

ZwCreateEnlistment 또는 ZwOpenEnlistment 이전 호출에서 얻은 인리스트먼트 개체 대한 핸들입니다. 개체는 우수한 인리스트먼트 나타내야 하며 핸들에는 개체에 대한 ENLISTMENT_SUPERIOR_RIGHTS 액세스 권한이 있어야 합니다.

[in, optional] TmVirtualClock

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

반환 값

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

반환 코드 묘사
STATUS_OBJECT_TYPE_MISMATCH
지정한 핸들이 인리스트먼트 개체에 대한 핸들이 아닙니다.
STATUS_INVALID_HANDLE
개체 핸들이 잘못되었습니다.
STATUS_ACCESS_DENIED
호출자는 인리스트먼트 개체에 대한 적절한 액세스 권한이 없습니다.
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 값을 반환할 수 있습니다.

발언

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

ZwCommitEnlistment 호출자는 TRANSACTION_NOTIFY_COMMIT_COMPLETE알림을 받으려면 등록해야 합니다.

ZwCommitEnlistment 루틴을 사용하면 KTM이 트랜잭션에 참여한 모든 리소스 관리자에게 TRANSACTION_NOTIFY_COMMIT 알림을 보냅니다.

ZwCommitEnlistment 대한 자세한 내용은 커밋 작업 처리만들기를 참조하세요.

커널 모드 드라이버의 호출의 경우 NtXxxZwXxx 버전의 Windows Native System Services 루틴은 입력 매개 변수를 처리하고 해석하는 방식으로 다르게 동작할 수 있습니다. NtXxxZwXxx 루틴 버전 간의 관계에 대한 자세한 내용은 네이티브 시스템 서비스 루틴 Nt 및 Zw 버전 사용참조하세요.

요구 사항

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

참고 항목

TmCommitEnlistment

네이티브 시스템 서비스 루틴 Nt 및 Zw 버전 사용

ZwCreateEnlistment

ZwOpenlistment