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) |