PsGetCurrentThreadTeb 函式 (ntddk.h)

PsGetCurrentThreadTeb 例程會傳回目前線程的線程環境區塊 (TEB) 或 NULL。 呼叫必須在核心模式中進行。

Syntax

PVOID PsGetCurrentThreadTeb();

傳回值

目前線程之線程環境區塊的指標。 TEB 應在 try/catch 例外狀況區塊記憶體取。

PsGetCurrentThreadTeb 會在下列情況下傳回 NULL:

  • 目前的線程沒有 TEB (,例如系統線程) 。
  • 目前的線程無法安全地存取自己的 TEB。 如果驅動程式將線程附加至另一個進程的位址空間,例如呼叫 KeStackAttachProcess,就會發生這種情況。

備註

雖然您可以在任何 IRQL 呼叫 PsGetCurrentThreadTeb 而不造成錯誤檢查,但 TEB 無法安全地在DISPATCH_LEVEL或更新版本存取, (可能會分頁) 。 此外,如果您要從中斷或 DPC 的內容呼叫提升許可權的 IRQL,目前的線程就是在傳遞中斷時在目前處理器上執行的任何情況。 因此,建議您從下列線程內容呼叫 PsGetCurrentThreadTeb DISPATCH_LEVEL。

規格需求

需求
最低支援的用戶端 可在 Windows 7 和更新版本的 Windows 中使用。
目標平台 Universal
標頭 ntddk.h
程式庫 NtosKrnl.lib
Dll NtosKrnl.exe
IRQL 任何層級 (請參閱備註)

另請參閱

進程和線程管理員例程