Função PsGetCurrentThreadTeb (ntddk.h)
A rotina PsGetCurrentThreadTeb retorna o TEB (Thread Environment Block) do thread atual ou NULL. A chamada deve ser feita no modo kernel.
Sintaxe
PVOID PsGetCurrentThreadTeb();
Valor de retorno
Um ponteiro para o bloco de ambiente de thread do thread atual. O TEB deve ser acessado em um bloco de exceção try/catch.
PsGetCurrentThreadTeb retorna NULL nos seguintes casos:
- O thread atual não tem um TEB (por exemplo, um thread do sistema).
- O thread atual não pode acessar com segurança seu próprio TEB. Isso pode acontecer se o driver anexou o thread ao espaço de endereço de outro processo, por exemplo, chamando KeStackAttachProcess.
Observações
Embora PsGetCurrentThreadTeb possa ser chamado em qualquer IRQL sem causar uma verificação de bugs, o TEB não é seguro para acessar em DISPATCH_LEVEL ou superior (pode ser paginado). Além disso, se você estiver chamando o IRQL elevado do contexto de uma interrupção ou DPC, o thread atual é o que aconteceu de estar em execução no processador atual quando a interrupção foi entregue lá. Como resultado, é recomendável que você chame PsGetCurrentThreadTeb do contexto de thread abaixo DISPATCH_LEVEL.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Disponível no Windows 7 e versões posteriores do Windows. |
da Plataforma de Destino | Universal |
cabeçalho | ntddk.h |
biblioteca | NtosKrnl.lib |
de DLL | NtosKrnl.exe |
IRQL | Qualquer nível (consulte Comentários) |