NtRecoverEnlistment 함수(wdm.h)
ZwRecoverEnlistment 루틴은 지정된 인리스트먼트와 연결된 트랜잭션에 대한 복구 작업을 시작합니다.
구문
__kernel_entry NTSYSCALLAPI NTSTATUS NtRecoverEnlistment(
[in] HANDLE EnlistmentHandle,
[in, optional] PVOID EnlistmentKey
);
매개 변수
[in] EnlistmentHandle
ZwCreateEnlistment 또는 ZwOpenEnlistment에 대한 이전 호출에서 가져온 인리스트먼트 개체에 대한 핸들입니다. 핸들에는 개체에 대한 ENLISTMENT_RECOVER 액세스 권한이 있어야 합니다.
[in, optional] EnlistmentKey
리소스 관리자가 이전에 ZwCreateEnlistment에 대한 EnlistmentKey 매개 변수로 지정한 인리스트먼트 키 값에 대한 포인터입니다. 이 매개 변수는 선택 사항이며 리소스 관리자가 ZwCreateEnlistment라고 할 때 인리스트먼트 키를 제공하지 않은 경우 NULL일 수 있습니다.
반환 값
작업이 성공하면 ZwRecoverEnlistment는 STATUS_SUCCESS 반환합니다. 그렇지 않으면 이 루틴이 다음 값 중 하나를 반환할 수 있습니다.
반환 코드 | 설명 |
---|---|
|
지정된 핸들은 인리스트먼트 개체에 대한 핸들이 아닙니다. |
|
개체 핸들이 잘못되었습니다. |
|
트랜잭션 또는 해당 인리스트먼트가 올바른 상태가 아닙니다. |
|
KTM은 리소스 관리자의 알림 큐에 커밋, 롤백 또는 의심스러운 알림을 추가했으며 리소스 관리자는 ResourceManagerNotification 콜백 루틴을 사용하지 않습니다. |
|
호출자는 인리스트먼트 개체에 대한 적절한 액세스 권한이 없습니다. |
루틴은 다른 NTSTATUS 값을 반환할 수 있습니다.
설명
리소스 관리자가 ZwRecoverEnlistment를 호출하면 KTM은 TRANSACTION_NOTIFY_COMMIT, TRANSACTION_NOTIFY_ROLLBACK 또는 TRANSACTION_NOTIFY_INDOUBT 인리스트먼트 에 대한 알림을 제공합니다. 따라서 리소스 관리자가 ResourceManagerNotification 콜백 루틴을 사용하지 않는 한 ZwRecoverEnlistment가 STATUS_SUCCESS 또는 STATUS_PENDING 반환하는 경우 ZwGetNotificationResourceManager를 즉시 호출해야 합니다.
ZwRecoverEnlistment에 대한 자세한 내용은 복구 작업 처리를 참조하세요.
NtRecoverEnlistment 및 ZwRecoverEnlistment 는 동일한 Windows 네이티브 시스템 서비스 루틴의 두 가지 버전입니다.
커널 모드 드라이버에서 호출하는 경우 Windows 네이티브 시스템 서비스 루틴의 NtXxx 및 ZwXxx 버전은 입력 매개 변수를 처리하고 해석하는 방식으로 다르게 동작할 수 있습니다. 루틴의 NtXxx 버전과 ZwXxx 버전 간의 관계에 대한 자세한 내용은 네이티브 시스템 서비스 루틴의 Nt 및 Zw 버전 사용을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista 이상 운영 체제 버전에서 사용할 수 있습니다. |
대상 플랫폼 | 유니버설 |
헤더 | wdm.h(Wdm.h, Ntddk.h, Ntifs.h 포함) |
라이브러리 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI 규정 준수 규칙 | HwStorPortProhibitedDDIs, PowerIrpDDis |
추가 정보
네이티브 시스템 서비스 루틴의 Nt 및 Zw 버전 사용