Freigeben über


PsGetCurrentThreadTeb-Funktion (ntddk.h)

Die PsGetCurrentThreadTeb-Routine gibt den Threadumgebungsblock (TEB) des aktuellen Threads oder NULL zurück. Der Aufruf muss im Kernelmodus erfolgen.

Syntax

PVOID PsGetCurrentThreadTeb();

Rückgabewert

Ein Zeiger auf den Threadumgebungsblock des aktuellen Threads. Auf den TEB sollte innerhalb eines try/catch-Ausnahmeblocks zugegriffen werden.

PsGetCurrentThreadTeb gibt in den folgenden Fällen NULL zurück:

  • Der aktuelle Thread verfügt nicht über einen TEB (z. B. einen Systemthread).
  • Der aktuelle Thread kann nicht sicher auf sein eigenes TEB zugreifen. Dies kann vorkommen, wenn der Treiber den Thread an den Adressraum eines anderen Prozesses angefügt hat, z. B. durch Aufrufen von KeStackAttachProcess.

Hinweise

Während PsGetCurrentThreadTeb bei jedem IRQL aufgerufen werden kann, ohne eine Fehlerüberprüfung zu verursachen, ist der TEB nicht sicher, auf DISPATCH_LEVEL oder höher zuzugreifen (es könnte ausgelagert werden). Wenn Sie irQL mit erhöhten Rechten aus dem Kontext eines Interrupts oder DPC aufrufen, ist der aktuelle Thread das, was auf dem aktuellen Prozessor ausgeführt wird, als ihr Interrupt dort übermittelt wurde. Daher wird empfohlen, PsGetCurrentThreadTeb aus dem Threadkontext unterhalb DISPATCH_LEVEL aufzurufen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar in Windows 7 und späteren Windows-Versionen.
Zielplattform Universell
Header ntddk.h
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL Beliebige Ebene (siehe Hinweise)

Weitere Informationen

Prozess- und Thread-Manager-Routinen