kernel32legacy.dll 通常位于 %SystemRoot%\System32 目录下,在 64 位系统中还会于 SysWOW64 目录保留一份 32 位副本。它与 kernel32.dll 同属 Win32 基础 API 层,是内核接口兼容体系中的重要支撑模块,专门用于承载那些已经被微软标记为历史遗留、或从主模块中迁移剥离出来的导出例程。
1. 旧版导出接口承载
该模块以独立的映像形式,将一部分被 kernel32.dll 淘汰或不再公开宣传的 API 保留下来,使这些符号名依然能够在系统解析导入表时被正确定位,避免调用方因找不到导出符号而中断。
2. 接口转发与桩实现
模块内部大量使用转发器与轻量桩函数,把遗产接口重新导向当前受支持的内核对象管理器、内存管理器或文件系统例程,从而在保持调用约定不变的前提下,让老代码继续享受新版内核的功能与修复。
3. 兼容层隔离
把历史包袱集中收纳在单独映像中,可以避免污染 kernel32.dll 的导出表与体积,降低主模块的维护成本,同时让兼容行为可被单独更新或弃用。
4. 参与模块加载链
它出现在部分应用程序、行业软件或旧版运行库的导入表中,随进程初始化被加载器映射进地址空间,与 ntdll.dll、kernelbase.dll 协同完成基础运行环境的搭建。