Funzione PsGetCurrentThreadTeb (ntddk.h)
La routine PsGetCurrentThreadTeb restituisce il blocco di ambiente thread (TEB) del thread corrente o NULL. La chiamata deve essere effettuata in modalità kernel.
Sintassi
PVOID PsGetCurrentThreadTeb();
Valore restituito
Puntatore al blocco dell'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 ha 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 ha collegato il thread allo spazio indirizzi di un altro processo, ad esempio chiamando KeStackAttachProcess.
Commenti
Anche se PsGetCurrentThreadTeb può essere chiamato in qualsiasi IRQL senza causare un controllo di bug, il TEB non è sicuro ad accedere a DISPATCH_LEVEL o versione successiva (potrebbe essere eseguito il paging). Inoltre, se si sta chiamando irQL con privilegi elevati dal contesto di un interrupt o DPC, il thread corrente è quello che è accaduto per essere in esecuzione sul processore corrente quando l'interrupt è stato recapitato lì. Di conseguenza, è consigliabile chiamare PsGetCurrentThreadTeb dal contesto del thread sotto DISPATCH_LEVEL.
Requisiti
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 Note) |