PsGetCurrentThreadTeb 関数 (ntddk.h)
PsGetCurrentThreadTeb ルーチンは、現在のスレッドのスレッド環境ブロック (TEB) または NULL を返します。 呼び出しはカーネル モードで行う必要があります。
構文
PVOID PsGetCurrentThreadTeb();
戻り値
現在のスレッドのスレッド環境ブロックへのポインター。 TEB には、try/catch 例外ブロック内でアクセスする必要があります。
PsGetCurrentThreadTeb は、次の場合に NULL を返します。
- 現在のスレッドには TEB がありません (システム スレッドなど)。
- 現在のスレッドは、独自の TEB に安全にアクセスできません。 これは、たとえば KeStackAttachProcess を呼び出すことによって、ドライバーがスレッドを別のプロセスのアドレス空間にアタッチした場合に発生する可能性があります。
注釈
PsGetCurrentThreadTeb はバグチェックを発生させずに任意の IRQL で呼び出すことができますが、TEB はDISPATCH_LEVEL以上で安全にアクセスできません (ページアウトされる可能性があります)。 また、割り込みまたは DPC のコンテキストから昇格された IRQL で を呼び出している場合、現在のスレッドは、割り込みが配信されたときに現在のプロセッサで実行されていたものです。 その結果、以下のスレッド コンテキストから PsGetCurrentThreadTeb を呼び出DISPATCH_LEVELすることをお勧めします。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 7 以降のバージョンの Windows で使用できます。 |
対象プラットフォーム | ユニバーサル |
Header | ntddk.h |
Library | NtosKrnl.lib |
[DLL] | NtosKrnl.exe |
IRQL | 任意のレベル (「解説」を参照) |