PsGetCurrentThreadTeb-Funktion (ntddk.h)
Die PsGetCurrentThreadTeb Routine gibt den Thread environment Block (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 seine eigene TEB zugreifen. Dies kann passieren, wenn der Treiber den Thread an den Adressraum eines anderen Prozesses angefügt hat, z. B. durch Aufrufen von KeStackAttachProcess.
Bemerkungen
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 auch dann, wenn er auf dem aktuellen Prozessor ausgeführt wird, wenn der Interrupt dort übermittelt wurde. Daher wird empfohlen, PsGetCurrentThreadTeb- aus dem Threadkontext unterhalb DISPATCH_LEVEL aufzurufen.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Verfügbar in Windows 7 und höheren Versionen von Windows. |
Zielplattform- | Universal |
Header- | ntddk.h |
Library | NtosKrnl.lib |
DLL- | NtosKrnl.exe |
IRQL- | Beliebige Ebene (siehe Hinweise) |