Поделиться через


Функция 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 Thread, драйвер должен вызвать ObDereferenceObject, чтобы разыменовать параметр Thread, полученный из подпрограммы psLookupThreadByThreadId.

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

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

Подпрограмм а psLookupThreadByThreadId содержит код, доступный для страниц.

Требования

Требование Ценность
целевая платформа Всеобщий
заголовка ntifs.h (include Ntifs.h)
библиотеки NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

См. также

ObDereferenceObject

PsGetCurrentProcess

PsGetCurrentProcessId

PsGetCurrentThread

PsGetCurrentThreadId

PsLookupProcessByProcessId

PsRemoveCreateThreadNotifyRoutine

PsRemoveLoadImageNotifyRoutine

PsSetCreateThreadNotifyRoutine

PsSetLoadImageNotifyRoutine