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 모든 수준(설명 참조)

추가 정보

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