whatsnew.dll 核心功能与缺失影响
whatsnew.dll 属于 Windows 生态中用于承载 “新增功能说明”(What's New) 模块的动态链接库。它通常不由系统内核直接加载,而是作为应用程序、更新组件或 Shell 扩展的一部分,被宿主进程通过 LoadLibrary 动态装载,承担版本变更信息的组织与展示工作。
一、核心功能
- 导出函数与接口暴露:通过导出表向宿主提供初始化、查询、渲染等入口点,调用方按需获取更新内容数据,完成模块级解耦。
- 资源承载与多语言支持:内置字符串表、图标、HTML/CSS 模板等资源,并借助 MUI 机制按系统区号匹配语言包,实现说明页面的本地化显示。
- 版本比对与触发控制:读取当前版本号并与历史记录比对,判断是否需要弹出提示,避免每次启动都重复打扰用户。
- 界面渲染与交互:负责生成提示窗口或嵌入式页面,处理滚动、分页、跳转链接以及关闭按钮等交互逻辑。
- 状态持久化:将“已查看”标记写入注册表或配置文件,下次启动时据此跳过提示流程。
二、缺失该 DLL 的影响
- 加载失败报错:LoadLibrary 返回失败,调用方若未做容错处理,会弹出“找不到指定模块”提示。
- 入口点缺失:GetProcAddress 取不到符号,可能触发异常代码 0xc0000139,导致进程初始化中断。
- 宿主程序异常:依赖该模块的程序在启动阶段卡死或直接崩溃,事件查看器中可记录到模块加载错误。
- 功能退化:即使程序能运行,更新说明窗口将无法打开,用户无法获知版本变更,帮助菜单相关入口失效。
- 修复思路:可通过重新安装对应软件、执行 sfc /scannow 或从可信来源恢复同版本文件解决。