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)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL

另请参阅

PsGetCurrentProcessId

PsGetCurrentThreadId

PsIsSystemThread

PsRemoveCreateThreadNotifyRoutine

PsSetCreateProcessNotifyRoutine

PsSetCreateThreadNotifyRoutine

PsSetLoadImageNotifyRoutine