다음을 통해 공유


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에 대한 자세한 내용은 우수한 트랜잭션 관리자 만들기커밋 작업 처리를 참조하세요.

커널 모드 드라이버에서 호출하는 경우 Windows 네이티브 시스템 서비스 루틴의 NtXxxZwXxx 버전은 입력 매개 변수를 처리하고 해석하는 방식으로 다르게 동작할 수 있습니다. 루틴의 NtXxx 버전과 ZwXxx 버전 간의 관계에 대한 자세한 내용은 네이티브 시스템 서비스 루틴의 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

ZwOpenEnlistment