다음을 통해 공유


NtOpenProcessTokenEx 함수(ntifs.h)

NtOpenProcessTokenEx 루틴은 프로세스와 연결된 액세스 토큰을 열고 해당 토큰에 액세스하는 데 사용할 수 있는 핸들을 반환합니다.

통사론

__kernel_entry NTSYSCALLAPI NTSTATUS NtOpenProcessTokenEx(
  [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

새로 열린 액세스 토큰에 대한 핸들을 수신하는 호출자 할당 변수에 대한 포인터입니다.

반환 값

NtOpenProcessTokenEx 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 토큰 핸들을 만들 수 없습니다.

발언

NtOpenProcessTokenEx 호출하여 얻은 모든 핸들은 결국 NtClose호출하여 해제되어야 합니다.

시스템 프로세스 이외의 프로세스 컨텍스트에서 실행되는 드라이버 루틴은 NtOpenProcessTokenExHandleAttributes 매개 변수에 대한 OBJ_KERNEL_HANDLE 특성을 설정해야 합니다. 이렇게 하면 NtOpenProcessTokenEx 반환된 핸들을 커널 모드에서 실행되는 프로세스로 제한합니다. 그렇지 않으면 드라이버가 실행 중인 컨텍스트의 프로세스에서 핸들에 액세스할 수 있습니다.

보안 및 액세스 제어에 대한 자세한 내용은 드라이버 개발자를 위한 Windows 보안 모델 및 Windows SDK의 이러한 항목에 대한 설명서를 참조하세요.

커널 모드 드라이버의 호출의 경우 NtXxxZwXxx 버전의 Windows Native System Services 루틴은 입력 매개 변수를 처리하고 해석하는 방식으로 다르게 동작할 수 있습니다. NtXxxZwXxx 루틴 버전 간의 관계에 대한 자세한 내용은 네이티브 시스템 서비스 루틴 Nt 및 Zw 버전 사용참조하세요.

요구 사항

요구
지원되는 최소 클라이언트 Windows XP
대상 플랫폼 보편적
헤더 ntifs.h(Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI 규정 준수 규칙 HwStorPortProhibitedDDIs, PowerIrpDDis

참고 항목

ACCESS_MASK

ACL

PsDereferencePrimaryToken

NtClose

NtOpenThreadTokenEx