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可用。
  • 具有 Service Pack 1 (SP1) 的 Windows 7 用户可以安装修补程序,将注册以接收加载映像通知的最大驱动程序数从 8 个增加到 64 个。 此修补程序在 中 https://support.microsoft.com/kb/2922790可用。
驱动程序必须先删除它注册的任何回调,然后才能卸载。 可以通过调用 PsRemoveLoadImageNotifyRoutine 例程来删除回调。

要求

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

另请参阅

PLOAD_IMAGE_NOTIFY_ROUTINE

PsGetCurrentProcessId

PsRemoveLoadImageNotifyRoutine

PsSetCreateProcessNotifyRoutine

PsSetCreateThreadNotifyRoutine