共用方式為


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 PsGetCurrentThreadTeb。

要求

要求 價值
最低支援的用戶端 適用於 Windows 7 和更新版本的 Windows。
目標平臺 普遍
標頭 ntddk.h
連結庫 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL 任何層級 (請參閱備註)

另請參閱

進程和線程管理員例程