Condividi tramite


Funzione PsGetCurrentThreadTeb (ntddk.h)

La routine PsGetCurrentThreadTeb restituisce il blocco TEB (Thread Environment Block) del thread corrente o NULL. La chiamata deve essere effettuata in modalità kernel.

Sintassi

PVOID PsGetCurrentThreadTeb();

Valore restituito

Puntatore al blocco di ambiente thread del thread corrente. È necessario accedere al teb all'interno di un blocco di eccezioni try/catch.

psGetCurrentThreadTeb restituisce NULL nei casi seguenti:

  • Il thread corrente non dispone di un TEB ,ad esempio un thread di sistema.
  • Il thread corrente non può accedere in modo sicuro al proprio TEB. Ciò può verificarsi se il driver collegato il thread allo spazio indirizzi di un altro processo, ad esempio chiamando KeStackAttachProcess.

Osservazioni

Anche se PsGetCurrentThreadTeb può essere chiamato in qualsiasi IRQL senza causare un controllo di bug, il TEB non è sicuro per l'accesso a DISPATCH_LEVEL o versione successiva (potrebbe essere eseguito il paging). Inoltre, se si esegue una chiamata a IRQL con privilegi elevati dal contesto di un interrupt o DPC, il thread corrente è quello che accade al processore corrente quando l'interrupt è stato recapitato lì. Di conseguenza, è consigliabile chiamare PsGetCurrentThreadTeb dal contesto del thread sotto DISPATCH_LEVEL.

Fabbisogno

Requisito Valore
client minimo supportato Disponibile in Windows 7 e versioni successive di Windows.
piattaforma di destinazione Universale
intestazione ntddk.h
libreria NtosKrnl.lib
dll NtosKrnl.exe
IRQL Qualsiasi livello (vedere la sezione Osservazioni)

Vedere anche

routine process e thread manager