다음을 통해 공유


NtOpenTransaction 함수(wdm.h)

ZwOpenTransaction 루틴은 기존 트랜잭션 개체에 대한 핸들을 가져옵니다.

구문

__kernel_entry NTSYSCALLAPI NTSTATUS NtOpenTransaction(
  [out]          PHANDLE            TransactionHandle,
  [in]           ACCESS_MASK        DesiredAccess,
  [in, optional] POBJECT_ATTRIBUTES ObjectAttributes,
  [in]           LPGUID             Uow,
  [in, optional] HANDLE             TmHandle
);

매개 변수

[out] TransactionHandle

ZwOpenTransaction이 STATUS_SUCCESS 반환하는 경우 트랜잭션 개체에 대한 핸들을 수신하는 호출자가 할당한 변수에 대한 포인터입니다.

[in] DesiredAccess

트랜잭션 개체에 대한 호출자의 요청된 액세스를 지정하는 ACCESS_MASK 값입니다. 이 매개 변수를 지정하는 방법에 대한 자세한 내용은 ZwCreateTransactionDesiredAccess 매개 변수를 참조하세요.

[in, optional] ObjectAttributes

개체의 특성을 지정하는 OBJECT_ATTRIBUTES 구조체에 대한 포인터입니다. InitializeObjectAttributes 루틴을 사용하여 이 구조를 초기화하지만 해당 루틴의 InitializedAttributes특성 매개 변수만 지정합니다. 호출자가 시스템 스레드 컨텍스트에서 실행되고 있지 않으면 Attributes 매개 변수에서 OBJ_KERNEL_HANDLE 플래그를 설정해야 합니다. ObjectAttributes 매개 변수는 선택 사항이며 NULL일 수 있습니다.

[in] Uow

트랜잭션 개체의 UOW(작업 단위) 식별자인 GUID에 대한 포인터입니다. 이 GUID는 열 트랜잭션 개체를 식별합니다.

[in, optional] TmHandle

트랜잭션 관리자 개체에 대한 핸들입니다. 이 매개 변수가 NULL이 아닌 경우 KTM은 지정된 트랜잭션 관리자 개체에 속하는 트랜잭션 개체만 검색합니다. 이 매개 변수가 NULL이면 KTM은 모든 트랜잭션 개체를 검색합니다.

반환 값

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

반환 코드 설명
STATUS_INVALID_PARAMETER
DesiredAccess 또는 Uow 매개 변수가 0이었습니다.
STATUS_OBJECT_TYPE_MISMATCH
지정된 핸들은 트랜잭션 개체에 대한 핸들이 아닙니다.
STATUS_INVALID_HANDLE
개체 핸들이 잘못되었습니다.
STATUS_TRANSACTION_NOT_FOUND
KTM에서 트랜잭션 개체를 찾을 수 없습니다.
STATUS_ACCESS_DENIED
DesiredAccess 매개 변수의 값이 잘못되었습니다.
 

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

설명

일반적으로 리소스 관리자는 이전에 ZwCreateTransaction 이라는 트랜잭션 클라이언트에서 트랜잭션 UOW를 받은 후 ZwOpenTransaction을 호출합니다.

ZwOpenTransaction에 대한 자세한 내용은 Resource Manager 만들기를 참조하세요.

NtOpenTransactionZwOpenTransaction 은 동일한 Windows 네이티브 시스템 서비스 루틴의 두 가지 버전입니다.

커널 모드 드라이버에서 호출하는 경우 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

추가 정보

ACCESS_MASK

InitializeObjectAttributes

OBJECT_ATTRIBUTES

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

ZwCommitTransaction

ZwCreateTransaction

ZwQueryInformationTransaction

ZwRollbackTransaction