PsLookupThreadByThreadId 函数 (ntifs.h)

PsLookupThreadByThreadId 例程接受线程的线程 ID,并返回指向线程的 ETHREAD 结构的引用指针。

语法

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

参数

[in] ThreadId

指定线程的线程 ID。

[out] Thread

返回指向由 ThreadId指定的线程的 ETHREAD 结构的引用指针。

返回值

PsLookupThreadByThreadId 返回成功或相应的 NTSTATUS 值STATUS_SUCCESS,例如:

返回代码 描述
STATUS_INVALID_PARAMETER
找不到线程 ID。

言论

此例程在 Windows 2000 及更高版本上可用。

如果调用 PsLookupThreadByThreadId 成功,PsLookupThreadByThreadId 会增加 Thread 参数中返回对象的引用计数。 因此,当驱动程序使用 Thread 参数完成时,驱动程序必须调用 ObDereferenceObject 以取消引用从 PsLookupThreadByThreadId 例程收到的 Thread 参数。

ETHREAD 结构是作系统内部使用的不透明数据结构。 此结构可以传递给其他例程以访问此结构中的特定信息。

文件系统筛选器驱动程序可以通过调用 PsLookupThreadByThreadId 来枚举活动线程,以将线程 ID 转换为 ETHREAD 结构。 线程创建例程中提供了线程 ID。 文件系统筛选器驱动程序可以使用 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