PsSetLoadImageNotifyRoutine 函数 (ntddk.h)

PsSetLoadImageNotifyRoutine 例程注册驱动程序提供的回调,每当加载映像(例如 DLL 或 EXE)(或映射到内存)时,该回调随后会收到通知。

语法

NTSTATUS PsSetLoadImageNotifyRoutine(
  [in] PLOAD_IMAGE_NOTIFY_ROUTINE NotifyRoutine
);

参数

[in] NotifyRoutine

指向调用方实现的 PLOAD_IMAGE_NOTIFY_ROUTINE 回调例程的指针,用于加载图像通知。

返回值

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

言论

最高级别的系统分析驱动程序可以调用 PsSetLoadImageNotifyRoutine 来设置其加载映像通知例程(请参阅 PLOAD_IMAGE_NOTIFY_ROUTINE)。

可以同时注册以接收加载映像通知的驱动程序的最大数目为 8。 如果驱动程序调用 PsSetLoadImageNotifyRoutine 尝试注册其他通知例程时,已注册最大负载映像通知例程数,PsSetLoadImageNotifyRoutine 失败并返回STATUS_INSUFFICIENT_RESOURCES。

备注

  • Windows 8.1 的更新将注册的最大驱动程序数从 8 个增加到 64 个。 此更新是自 2014 年 4 月 8 日开始通过 Windows 更新提供的累积更新的一部分安装的。 此外,此累积更新在 https://support.microsoft.com/kb/2919355可用。
  • Windows 7 Service Pack 1(SP1)的用户可以安装修补程序,以将注册的最大驱动程序数从 8 个增加到 64 个。 此修补程序在 https://support.microsoft.com/kb/2922790提供。
驱动程序必须在卸载之前删除它注册的任何回调。 可以通过调用 PsRemoveLoadImageNotifyRoutine 例程来删除回调。

要求

要求 价值
最低支持的客户端 从 Windows 2000 开始可用。
目标平台 普遍
标头 ntddk.h (包括 Ntddk.h)
NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI 符合性规则 HwStorPortProhibitedDIS(storport)IrqlPsPassive(wdm)PowerIrpDDis(wdm)

另请参阅

PLOAD_IMAGE_NOTIFY_ROUTINE

PsGetCurrentProcessId

PsRemoveLoadImageNotifyRoutine

PsSetCreateProcessNotifyRoutine

PsSetCreateThreadNotifyRoutine