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 | 任何層級 (請參閱備註) |