다음을 통해 공유


NtOpenThreadToken 함수(ntifs.h)

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

통사론

__kernel_entry NTSYSCALLAPI NTSTATUS NtOpenThreadToken(
  [in]  HANDLE      ThreadHandle,
  [in]  ACCESS_MASK DesiredAccess,
  [in]  BOOLEAN     OpenAsSelf,
  [out] PHANDLE     TokenHandle
);

매개 변수

[in] ThreadHandle

액세스 토큰을 열 스레드에 대한 핸들입니다. 핸들에 THREAD_QUERY_INFORMATION 액세스 권한이 있어야 합니다. NtCurrentThread 매크로를 사용하여 현재 스레드를 지정합니다.

[in] DesiredAccess

액세스 토큰에 대한 요청된 액세스 유형을 지정하는 ACCESS_MASK 구조입니다. 이러한 요청된 액세스 유형은 토큰의 임의 액세스 제어 목록(DACL)과 비교하여 부여되거나 거부된 액세스 권한을 결정합니다.

[in] OpenAsSelf

NtOpenThreadToken 호출하는 스레드의 보안 컨텍스트에 대해 또는 호출 스레드에 대한 프로세스의 보안 컨텍스트에 대해 액세스 검사가 수행되는지 여부를 지정하는 부울 값입니다.

이 매개 변수가 FALSE경우 호출 스레드에 대한 보안 컨텍스트를 사용하여 액세스 검사가 수행됩니다. 스레드가 클라이언트를 가장하는 경우 이 보안 컨텍스트는 클라이언트 프로세스의 컨텍스트일 수 있습니다. 이 매개 변수가 TRUE경우 호출 스레드에 대한 프로세스의 보안 컨텍스트를 사용하여 액세스 검사를 수행합니다.

[out] TokenHandle

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

반환 값

NtOpenThreadToken STATUS_SUCCESS 또는 적절한 오류 상태를 반환합니다. 가능한 오류 상태 코드에는 다음이 포함됩니다.

반환 코드 묘사
STATUS_ACCESS_DENIED
ThreadHandle THREAD_QUERY_INFORMATION 액세스 권한이 없습니다.
STATUS_CANT_OPEN_ANONYMOUS 클라이언트가 SecurityAnonymous 가장 수준을 요청했습니다. 그러나 익명 토큰은 열 수 없습니다. 자세한 내용은 SECURITY_IMPERSONATION_LEVEL참조하세요.
STATUS_INVALID_HANDLE ThreadHandle 올바른 핸들이 아니었습니다.
STATUS_NO_TOKEN 현재 클라이언트를 가장하지 않는 스레드와 연결된 토큰을 열려고 했습니다.
STATUS_OBJECT_TYPE_MISMATCH ThreadHandle 스레드 핸들이 아니었습니다.

발언

NtOpenThreadToken 스레드와 연결된 액세스 토큰을 열고 해당 토큰에 대한 핸들을 반환합니다.

OpenAsSelf 매개 변수를 사용하면 클라이언트 프로세스가 SECURITY_IMPERSONATION_LEVEL 열거형 형식에 대한 SecurityIdentification 가장 수준을 지정한 경우 서버 프로세스에서 클라이언트 프로세스에 대한 액세스 토큰을 열 수 있습니다. 이 매개 변수가 없으면 SecurityIdentification 가장 수준을 사용하여 임원 수준 개체를 열 수 없으므로 호출 프로세스에서 클라이언트의 보안 컨텍스트를 사용하여 클라이언트의 액세스 토큰을 열 수 없습니다.

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

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

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

요구 사항

요구
지원되는 최소 클라이언트 Windows XP
헤더 ntifs.h
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe

참고 항목

ACCESS_MASK

ACL

NtOpenThreadTokenEx

PsDereferencePrimaryToken

SECURITY_IMPERSONATION_LEVEL

ZwClose

ZwOpenProcessTokenEx