You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于LdrRegisterDllNotification()注册的通知行为变更起始版本的技术问询

关于LdrRegisterDllNotification()注册的通知行为变更起始版本的技术问询

各位大佬好,我最近在核对LdrRegisterDllNotification()函数的实际行为和官方文档描述时,发现了一个跨版本的明显差异,想请教下大家有没有相关的经验或者官方说明:

微软官方文档里明确说明,通过这个函数注册的DLL加载通知满足:

该通知在动态链接发生之前触发。

为了验证这个描述,我专门写了一个测试程序。结果发现在Windows 7 x64系统上,通知的触发时机完全符合文档所说;但切换到Windows 10 x64系统后,它的表现却截然不同——通知是在DLL的导入表已经解析完成,而且导入函数的入口点已经写入到导入地址表(IAT)之后才触发的。这里的IAT具体是指IMAGE_NT_HEADERS.OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress指向结构中的FirstThunk.u1.Function字段。

我使用的通知回调函数原型如下:

VOID CALLBACK NotificationFunction(_In_ ULONG NotificationReason, _In_ PLDR_DLL_NOTIFICATION_DATA NotificationData, _In_opt_ PVOID Context)

目前我还没找到官方关于这个行为变更的明确说明,想问问这个行为变更是从Windows 10的哪个具体版本开始的?或者有没有其他开发者遇到过类似的情况,能分享下相关的细节吗?

备注:内容来源于stack exchange,提问作者George Robinson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 12:49:53