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