PsSetCreateThreadNotifyRoutineEx 函数 (ntddk.h)

PsSetCreateThreadNotifyRoutineEx 例程注册驱动程序提供的回调,该回调随后会在创建新线程和删除此类线程时收到通知。

语法

NTSTATUS PsSetCreateThreadNotifyRoutineEx(
  [in] PSCREATETHREADNOTIFYTYPE NotifyType,
  [in] PVOID                    NotifyInformation
);

参数

[in] NotifyType

PSCREATETHREADNOTIFYTYPE 值,指示线程通知的类型。

[in] NotifyInformation

提供指定类型的线程通知的通知信息的地址。 如果 NotifyTypePsCreateThreadNotifyNonSystemPsCreateThreadNotifySubsystems,则 NotifyInformation 应是驱动程序实现 PCREATE_THREAD_NOTIFY_ROUTINE的指针。

返回值

PsSetCreateThreadNotifyRoutineEx 返回STATUS_SUCCESS,或者在回调注册失败时返回STATUS_INSUFFICIENT_RESOURCES。

言论

最高级别的驱动程序可以调用 PsSetCreateThreadNotifyRoutineEx 来设置线程创建通知例程。

例如,IFS 或最高级别的系统分析驱动程序可能会注册此类线程创建回调,以跟踪针对驱动程序的内部状态创建和删除线程的系统范围。

如果 NotifyTypePsCreateThreadNotifyNonSystem,则 PsSetCreateThreadNotifyRoutineEx 例程不同于执行回调的上下文中的 PsSetCreateThreadNotifyRoutine。 使用 PsSetCreateThreadNotifyRoutine,回调在创建者线程上执行。 使用 PsSetCreateThreadNotifyRoutineEx时,回调在新建的线程上执行。

驱动程序必须在卸载之前删除它注册的任何回调函数。 可以通过调用 PsRemoveCreateThreadNotifyRoutine 例程来删除回调。

要求

要求 价值
最低支持的客户端 从 Windows 10 开始可用。
目标平台 普遍
标头 ntddk.h (包括 Ntddk.h)
NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL

另请参阅

PsGetCurrentProcessId

PsGetCurrentThreadId

PsIsSystemThread

PsRemoveCreateThreadNotifyRoutine

PsSetCreateProcessNotifyRoutine

PsSetCreateThreadNotifyRoutine

PsSetLoadImageNotifyRoutine