Функция PsLookupThreadByThreadId (ntifs.h)

Подпрограмма PsLookupThreadByThreadId принимает идентификатор потока и возвращает указатель на структуру ETHREAD потока.

Синтаксис

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

Параметры

[in] ThreadId

Указывает идентификатор потока.

[out] Thread

Возвращает указатель, на который указывает ссылка на структуру ETHREAD потока, заданного ThreadId.

Возвращаемое значение

PsLookupThreadByThreadId возвращает STATUS_SUCCESS при успешном выполнении или соответствующее значение NTSTATUS, например:

Код возврата Описание
STATUS_INVALID_PARAMETER
Идентификатор потока не найден.

Комментарии

Эта подпрограмма доступна в Windows 2000 и более поздних версиях.

Если вызов PsLookupThreadByThreadId выполнен успешно, psLookupThreadByThreadId увеличивает количество ссылок на объект, возвращаемый в параметре Thread . Следовательно, после завершения работы драйвера с помощью параметра Thread драйвер должен вызвать ObDereferenceObject , чтобы разыменовать параметр Thread , полученный из подпрограммы PsLookupThreadByThreadId .

Структура ETHREAD — это непрозрачная структура данных, используемая внутренне операционной системой. Эту структуру можно передать другим подпрограммам для доступа к определенной информации в этой структуре.

Драйвер фильтра файловой системы может перечислять активные потоки путем вызова PsLookupThreadByThreadId для преобразования идентификатора потока в структуру ETHREAD. Идентификатор потока доступен в процедуре создания потока. Драйвер фильтра файловой системы может задать подпрограмму обратного вызова уведомления потока с помощью PsSetCreateThreadNotifyRoutine. В процедуре обратного вызова уведомлений драйвер фильтра файловой системы может использовать переданный параметр ThreadId и вызвать PsLookupThreadByThreadId , чтобы найти структуру ETHREAD.

Подпрограмма PsLookupThreadByThreadId содержит страничный код.

Требования

Требование Значение
Целевая платформа Универсальное
Верхняя часть ntifs.h (включая Ntifs.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

См. также раздел

ObDereferenceObject

PsGetCurrentProcess

PsGetCurrentProcessId

PsGetCurrentThread

PsGetCurrentThreadId

PsLookupProcessByProcessId

PsRemoveCreateThreadNotifyRoutine

PsRemoveLoadImageNotifyRoutine

PsSetCreateThreadNotifyRoutine

PsSetLoadImageNotifyRoutine