Compartilhar via


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)

Consulte também

Rotinas do Gerenciador de Processos e Threads