ZwOpenProcessTokenEx 함수(ntifs.h)
ZwOpenProcessTokenEx 루틴은 프로세스와 연결된 액세스 토큰을 엽니다.
통사론
NTSYSAPI NTSTATUS ZwOpenProcessTokenEx(
[in] HANDLE ProcessHandle,
[in] ACCESS_MASK DesiredAccess,
[in] ULONG HandleAttributes,
[out] PHANDLE TokenHandle
);
매개 변수
[in] ProcessHandle
액세스 토큰을 열 프로세스에 대한 핸들입니다. 핸들에 PROCESS_QUERY_INFORMATION 액세스 권한이 있어야 합니다. Ntddk.h에 정의된 NtCurrentProcess 매크로를 사용하여 현재 프로세스를 지정합니다.
[in] DesiredAccess
액세스 토큰에 대한 요청된 액세스 유형을 지정하는 ACCESS_MASK 구조입니다. 이러한 요청된 액세스 유형은 토큰의 임의 액세스 제어 목록(DACL)과 비교하여 부여되거나 거부된 액세스 권한을 결정합니다.
[in] HandleAttributes
액세스 토큰 핸들에 대한 특성입니다. 현재 OBJ_KERNEL_HANDLE만 지원됩니다. 호출자가 시스템 프로세스 컨텍스트에서 실행되고 있지 않으면 이 매개 변수에 대한 OBJ_KERNEL_HANDLE 지정해야 합니다.
[out] TokenHandle
새로 열린 액세스 토큰에 대한 핸들을 수신하는 호출자 할당 변수에 대한 포인터입니다.
반환 값
ZwOpenProcessTokenEx STATUS_SUCCESS 또는 적절한 오류 상태를 반환합니다. 가능한 오류 상태 코드에는 다음이 포함됩니다.
반환 코드 | 묘사 |
---|---|
STATUS_ACCESS_DENIED | ProcessHandle PROCESS_QUERY_INFORMATION 액세스 권한이 없습니다. |
STATUS_INSUFFICIENT_RESOURCES | 새 토큰 핸들을 할당할 수 없습니다. |
STATUS_INVALID_HANDLE | ProcessHandle 올바른 핸들이 아닙니다. |
STATUS_INVALID_PARAMETER | 지정한 HandleAttributes OBJ_KERNEL_HANDLE 포함하지 않았습니다. |
STATUS_OBJECT_TYPE_MISMATCH | ProcessHandle 프로세스 핸들이 아닙니다. |
STATUS_PRIVILEGE_NOT_HELD | 호출자에게는 DesiredAccess 매개 변수에 지정된 액세스 권한이 있는 토큰 핸들을 만드는 데 필요한 권한(SeSecurityPrivilege)이 없습니다. |
STATUS_QUOTA_EXCEEDED | 프로세스의 메모리 할당량이 토큰 핸들을 할당하기에 충분하지 않습니다. |
STATUS_UNSUCCESSFUL | 토큰 핸들을 만들 수 없습니다. |
발언
ZwOpenProcessTokenEx 프로세스와 연결된 액세스 토큰을 열고 해당 토큰에 대한 핸들을 반환합니다.
ZwOpenProcessTokenEx 호출하여 얻은 모든 핸들은 결국 ZwClose호출하여 해제되어야 합니다.
시스템 프로세스 이외의 프로세스 컨텍스트에서 실행되는 드라이버 루틴은 ZwOpenProcessTokenExHandleAttributes 매개 변수에 대한 OBJ_KERNEL_HANDLE 특성을 설정해야 합니다. 이렇게 하면 ZwOpenProcessTokenEx 반환된 핸들을 커널 모드에서 실행되는 프로세스로 제한합니다. 그렇지 않으면 드라이버가 실행 중인 컨텍스트의 프로세스에서 핸들에 액세스할 수 있습니다.
보안 및 액세스 제어에 대한 자세한 내용은 드라이버 개발자를 위한
메모
커널 모드 드라이버의 호출의 경우 NtXxx 및 ZwXxx 버전의 Windows Native System Services 루틴은 입력 매개 변수를 처리하고 해석하는 방식으로 다르게 동작할 수 있습니다.
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP |
대상 플랫폼 | 보편적 |
헤더 | ntifs.h(Ntifs.h 포함) |
라이브러리 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL |
PASSIVE_LEVEL |
DDI 규정 준수 규칙 |
HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm) |
참고 항목
ACL
네이티브 시스템 서비스 루틴 Nt 및 Zw 버전 사용
ZwClose
ZwOpenThreadTokenEx