Fonction PsGetCurrentThreadTeb (ntddk.h)

La routine PsGetCurrentThreadTeb retourne le bloc d’environnement de thread (TEB) du thread actif, ou NULL. L’appel doit être effectué en mode noyau.

Syntaxe

PVOID PsGetCurrentThreadTeb();

Valeur de retour

Pointeur vers le bloc d’environnement de thread du thread actuel. Le TEB doit être accessible dans un bloc d’exception try/catch.

PsGetCurrentThreadTeb retourne NULL dans les cas suivants :

  • Le thread actuel n’a pas de TEB (par exemple, un thread système).
  • Le thread actuel ne peut pas accéder en toute sécurité à son propre TEB. Cela peut se produire si le pilote a attaché le thread à l’espace d’adressage d’un autre processus, par exemple en appelant KeStackAttachProcess.

Remarques

Alors que PsGetCurrentThreadTeb peut être appelé à n’importe quel IRQL sans provoquer de vérification de bogue, le TEB n’est pas sûr d’accès à DISPATCH_LEVEL ou au-dessus (il peut être paginé). En outre, si vous appelez à l’IRQL avec élévation de privilèges à partir du contexte d’une interruption ou d’un DPC, le thread actuel correspond à ce qui s’est produit pour s’exécuter sur le processeur actuel lorsque votre interruption y a été fournie. Par conséquent, il est recommandé d’appeler PsGetCurrentThreadTeb à partir du contexte de thread ci-dessous DISPATCH_LEVEL.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible dans Windows 7 et versions ultérieures de Windows.
Plateforme cible Universal
En-tête ntddk.h
Bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL N’importe quel niveau (voir Remarques)

Voir aussi

Routines du gestionnaire de processus et de threads