GetCurrentThread 함수(processthreadsapi.h)
호출 스레드에 대한 의사 핸들을 검색합니다.
구문
HANDLE GetCurrentThread();
반환 값
반환 값은 현재 스레드에 대한 의사 핸들입니다.
설명
의사 핸들은 현재 스레드 핸들로 해석되는 특수 상수입니다. 호출 스레드는 스레드 핸들이 필요할 때마다 이 핸들을 사용하여 자신을 지정할 수 있습니다. 의사 핸들은 자식 프로세스에서 상속되지 않습니다.
이 핸들에는 스레드 개체에 대한 THREAD_ALL_ACCESS 액세스 권한이 있습니다. 자세한 내용은 스레드 보안 및 액세스 권한을 참조하세요.
Windows Server 2003 및 Windows XP: 이 핸들에는 프로세스의 기본 토큰에 대한 스레드의 보안 설명자가 허용하는 최대 액세스 권한이 있습니다.
함수는 한 스레드에서 다른 스레드가 첫 번째 스레드를 참조하는 데 사용할 수 있는 핸들을 만드는 데 사용할 수 없습니다. 핸들은 항상 사용 중인 스레드를 참조하는 것으로 해석됩니다. 스레드는 DuplicateHandle 함수 호출에서 의사 핸들을 원본 핸들로 지정하여 다른 스레드에서 사용하거나 다른 프로세스에서 상속할 수 있는 자체에 대한 "실제" 핸들을 만들 수 있습니다.
의사 핸들은 더 이상 필요하지 않은 경우 닫을 필요가 없습니다. 이 핸들을 사용하여 CloseHandle 함수를 호출해도 아무런 효과가 없습니다. 의사 핸들이 DuplicateHandle에 의해 중복된 경우 중복 핸들을 닫아야 합니다.
보안 컨텍스트를 가장하는 동안에는 스레드를 만들지 마세요. 호출은 성공합니다. 그러나 새로 만든 스레드는 GetCurrentThread를 호출할 때 자체에 대한 액세스 권한을 줄입니다. 이 스레드에 부여된 액세스 권한은 가장한 사용자가 프로세스에 대해 가지고 있는 액세스 권한에서 파생됩니다. THREAD_SET_THREAD_TOKEN 및 THREAD_GET_CONTEXT 포함한 일부 액세스 권한이 없으므로 예기치 않은 오류가 발생할 수 있습니다.
예제
예제는 클라이언트 액세스 확인을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | processthreadsapi.h(Windows Server 2003, Windows Vista, Windows 7, Windows Server 2008 Windows Server 2008 R2의 Windows.h 포함) |
라이브러리 | Kernel32.lib |
DLL | Kernel32.dll |