ZwOpenTransactionManager 함수(wdm.h)
ZwOpenTransactionManager 루틴은 기존 트랜잭션 관리자 개체에 대한 핸들을 가져옵니다.
구문
NTSYSCALLAPI NTSTATUS ZwOpenTransactionManager(
[out] PHANDLE TmHandle,
[in] ACCESS_MASK DesiredAccess,
[in, optional] POBJECT_ATTRIBUTES ObjectAttributes,
[in, optional] PUNICODE_STRING LogFileName,
[in, optional] LPGUID TmIdentity,
[in, optional] ULONG OpenOptions
);
매개 변수
[out] TmHandle
ZwOpenTransactionManager가 STATUS_SUCCESS 반환하는 경우 트랜잭션 관리자 개체에 대한 핸들을 수신하는 호출자 할당 변수에 대한 포인터입니다.
[in] DesiredAccess
트랜잭션 관리자 개체에 대한 호출자의 요청된 액세스를 지정하는 ACCESS_MASK 값입니다. 이 매개 변수를 지정하는 방법에 대한 자세한 내용은 ZwCreateTransactionManager의 DesiredAccess 매개 변수를 참조하세요.
[in, optional] ObjectAttributes
개체 이름 및 기타 특성을 지정하는 OBJECT_ATTRIBUTES 구조체에 대한 포인터입니다. InitializeObjectAttributes 루틴을 사용하여 이 구조를 초기화합니다. 호출자가 시스템 스레드 컨텍스트에서 실행되고 있지 않으면 InitializeObjectAttributes를 호출할 때 OBJ_KERNEL_HANDLE 특성을 설정해야 합니다. 이 매개 변수는 선택 사항이며 NULL일 수 있습니다.
[in, optional] LogFileName
트랜잭션 관리자 개체를 만들 때 만든 로그 파일 스트림의 경로 및 파일 이름을 포함하는 UNICODE_STRING 구조체에 대한 포인터입니다. 자세한 내용은 ZwCreateTransactionManager의 LogFileName 매개 변수를 참조하세요. 이 매개 변수는 선택 사항이며 NULL일 수 있습니다.
[in, optional] TmIdentity
트랜잭션 관리자 개체를 식별하는 GUID에 대한 포인터입니다. 이 매개 변수는 선택 사항이며 NULL일 수 있습니다.
[in, optional] OpenOptions
이 매개 변수는 사용되지 않으며 0이어야 합니다.
반환 값
ZwOpenTransactionManager 는 작업이 성공하면 STATUS_SUCCESS 반환합니다. 그렇지 않으면 이 루틴이 다음 값 중 하나를 반환할 수 있습니다.
반환 코드 | 설명 |
---|---|
|
입력 매개 변수의 값이 잘못되었습니다. |
|
KTM은 시스템 리소스(일반적으로 메모리)를 할당할 수 없습니다. |
|
ObjectAttributes 매개 변수가 지정하는 개체 이름이 잘못되었습니다. |
|
로그 파일을 만들거나 여는 동안 KTM에 오류가 발생했습니다. |
|
DesiredAccess 매개 변수의 값이 잘못되었습니다. |
루틴은 다른 NTSTATUS 값을 반환할 수 있습니다.
설명
호출자는 다음 세 가지 기술 중 하나를 사용하여 열 트랜잭션 관리자 개체를 식별할 수 있습니다.
- LogFileName 매개 변수를 사용하여 트랜잭션 관리자 개체를 만들 때 만든 로그 파일 스트림의 경로 및 파일 이름을 지정합니다.
- TmIdentity 매개 변수를 사용하여 트랜잭션 관리자 개체를 식별하는 GUID를 지정합니다.
- ObjectAttributes 매개 변수를 사용하여 호출자가 이전에 ZwCreateTransactionManager 루틴에 지정한 개체 이름을 포함하는 OBJECT_ATTRIBUTES 구조를 제공합니다.
TPS 구성 요소는 ZwOpenTransactionManager 를 호출한 후 ZwRecoverTransactionManager를 호출해야 합니다.
ZwOpenTransactionManager를 호출하는 TPS 구성 요소는 결국 ZwClose를 호출하여 개체 핸들을 닫아야 합니다.
ZwOpenTransactionManager를 사용하는 방법에 대한 자세한 내용은 트랜잭션 관리자 개체 및 Resource Manager 만들기를 참조하세요.
NtOpenTransactionManager 및 ZwOpenTransactionManager 는 동일한 Windows 네이티브 시스템 서비스 루틴의 두 버전입니다.
커널 모드 드라이버에서 호출하는 경우 Windows 네이티브 시스템 서비스 루틴의 NtXxx 및 ZwXxx 버전은 입력 매개 변수를 처리하고 해석하는 방식으로 다르게 동작할 수 있습니다. 루틴의 NtXxx 버전과 ZwXxx 버전 간의 관계에 대한 자세한 내용은 네이티브 시스템 서비스 루틴의 Nt 및 Zw 버전 사용을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista 이상 운영 체제 버전에서 사용할 수 있습니다. |
대상 플랫폼 | 유니버설 |
헤더 | wdm.h(Wdm.h, Ntifs.h 포함) |
라이브러리 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI 규정 준수 규칙 | HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm) |