Função PsLookupThreadByThreadId (ntifs.h)

A rotina PsLookupThreadByThreadId aceita a ID de thread de um thread e retorna um ponteiro referenciado para a estrutura ETHREAD do thread.

Sintaxe

NTSTATUS PsLookupThreadByThreadId(
  [in]  HANDLE   ThreadId,
  [out] PETHREAD *Thread
);

Parâmetros

[in] ThreadId

Especifica a ID do thread.

[out] Thread

Retorna um ponteiro referenciado para a estrutura ETHREAD do thread especificado pelo ThreadId.

Retornar valor

PsLookupThreadByThreadId retorna STATUS_SUCCESS com êxito ou um valor NTSTATUS apropriado, como:

Código de retorno Descrição
STATUS_INVALID_PARAMETER
A ID do thread não foi encontrada.

Comentários

Essa rotina está disponível no Windows 2000 e versões posteriores.

Se a chamada para PsLookupThreadByThreadId for bem-sucedida, PsLookupThreadByThreadId aumentará a contagem de referência no objeto retornado no parâmetro Thread . Consequentemente, quando um driver é concluído usando o parâmetro Thread , o driver deve chamar ObDereferenceObject para desreferenciar o parâmetro Thread recebido da rotina PsLookupThreadByThreadId .

A estrutura ETHREAD é uma estrutura de dados opaca usada internamente pelo sistema operacional. Essa estrutura pode ser passada para outras rotinas para acessar informações específicas nessa estrutura.

Um driver de filtro do sistema de arquivos pode enumerar threads ativos chamando PsLookupThreadByThreadId para converter uma ID de thread em uma estrutura ETHREAD. A ID do thread está disponível na rotina de criação de thread. Um driver de filtro do sistema de arquivos pode definir uma rotina de retorno de chamada de notificação de thread usando PsSetCreateThreadNotifyRoutine. Na rotina de retorno de chamada de notificação, o driver de filtro do sistema de arquivos pode usar o parâmetro ThreadId passado e chamar PsLookupThreadByThreadId para localizar a estrutura ETHREAD.

A rotina PsLookupThreadByThreadId contém código paginável.

Requisitos

Requisito Valor
Plataforma de Destino Universal
Cabeçalho ntifs.h (inclua Ntifs.h)
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

Confira também

ObDereferenceObject

PsGetCurrentProcess

PsGetCurrentProcessId

PsGetCurrentThread

PsGetCurrentThreadId

PsLookupProcessByProcessId

PsRemoveCreateThreadNotifyRoutine

PsRemoveLoadImageNotifyRoutine

PsSetCreateThreadNotifyRoutine

PsSetLoadImageNotifyRoutine