PsLookupThreadByThreadId 函数 (ntifs.h)

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

语法

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

参数

[in] ThreadId

指定线程的线程 ID。

[out] Thread

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

返回值

PsLookupThreadByThreadId 在成功时返回STATUS_SUCCESS或适当的 NTSTATUS 值,例如:

返回代码 说明
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 (包括 Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

另请参阅

ObDereferenceObject

PsGetCurrentProcess

PsGetCurrentProcessId

PsGetCurrentThread

PsGetCurrentThreadId

PsLookupProcessByProcessId

PsRemoveCreateThreadNotifyRoutine

PsRemoveLoadImageNotifyRoutine

PsSetCreateThreadNotifyRoutine

PsSetLoadImageNotifyRoutine