다음을 통해 공유


PsGetCurrentThreadTeb 함수(ntddk.h)

PsGetCurrentThreadTeb 루틴은 현재 스레드의 TEB(스레드 환경 블록) 또는 NULL을 반환합니다. 커널 모드에서 호출해야 합니다.

통사론

PVOID PsGetCurrentThreadTeb();

반환 값

현재 스레드의 스레드 환경 블록에 대한 포인터입니다. TEB는 try/catch 예외 블록 내에서 액세스해야 합니다.

PsGetCurrentThreadTeb 다음과 같은 경우 NULL을 반환합니다.

  • 현재 스레드에는 TEB(예: 시스템 스레드)가 없습니다.
  • 현재 스레드는 자체 TEB에 안전하게 액세스할 수 없습니다. 예를 들어 KeStackAttachProcess호출하여 드라이버가 다른 프로세스의 주소 공간에 스레드를 연결한 경우에 발생할 수 있습니다.

발언

PsGetCurrentThreadTeb 버그 검사를 발생시키지 않고 모든 IRQL에서 호출할 수 있지만 TEB는 DISPATCH_LEVEL 이상에서 액세스하는 것이 안전하지 않습니다(페이징될 수 있음). 또한 인터럽트 또는 DPC의 컨텍스트에서 관리자 권한 IRQL에서 호출하는 경우 현재 스레드는 인터럽트를 배달할 때 현재 프로세서에서 실행되고 있는 모든 상황입니다. 따라서 DISPATCH_LEVEL 아래의 스레드 컨텍스트에서 PsGetCurrentThreadTeb 호출하는 것이 좋습니다.

요구 사항

요구
지원되는 최소 클라이언트 Windows 7 이상 버전의 Windows에서 사용할 수 있습니다.
대상 플랫폼 보편적
헤더 ntddk.h
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL 모든 수준(설명 참조)

참고 항목

프로세스 및 스레드 관리자 루틴