我有一个测量系统连接到运行 Windows XP SP3 的计算机(因为硬件不支持较新版本的 Windows)。基本设置是用于 Windows 的主显示器和连接到测量系统的辅助显示器输出。今天我不得不暂时断开主显示器的连接,当我重新连接显示器时,Windows 已将第二个显示器输出设为主显示器输出。由于第二个显示器输出连接到测量系统,我不得不使用 UltraVNC 连接以切换回主显示器。UltraVNC 不喜欢这样并断开连接,所以我错过了在恢复到旧设置之前确认对话框的 15 秒延迟。最终,我获得了正确的显示器作为主显示器并重新启动计算机以解决所有问题。
计算机重新启动后立即显示以下对话框:
用户界面故障
登录用户界面 DLL msgina.dll 无法加载。
联系系统管理员替换该 DLL,或者恢复原始 DLL。
[重新开始]
连接到 c$ 共享后,我比较了文件 C:\Windows\system32\msgina.dll 和 C:\Windows\system32\dllcache\msgina.dll,发现它们是相同的。为了确保硬盘没有坏扇区或其他问题,我重命名了 system32\msgina.dll 文件,并准备从 dllcache 复制到 system32。但 Windows 已经复制了,大概是从 dllcache 复制的(文件是相同的)。
重新启动计算机后,我仍然收到相同的错误消息。我还尝试了最后一次正确配置和安全模式,结果相同。我还尝试了完全关闭/打开电源的循环。
我怀疑监视器信息不知怎么搞错了,这就是 msgina.dll 加载错误的真正原因。我已断开测量系统,因此只有一个监视器连接。我甚至尝试断开监视器,因此所有监视器输出都断开,当使用 UltraVNC 连接时,我收到了相同的错误消息。
有没有办法可以重置 Windows XP 中的所有监视器信息?
是否存在其他可能导致 msgina.dll 加载错误的文件?
该计算机是 HP Z620,配有 Nvidia Quadro FX 3800 显卡,运行 Windows XP SP3。msgina.dll 尚未被自定义实现替换,登录屏幕和徽标是 Windows 默认设置)。
答案1
我终于有时间进一步调查这个问题了。大多数修复 msgina.dll 错误的建议是用 C:\Windows\system32\dllcache 中的 msgina.dll 替换它,但这并没有解决我的问题。
从Hiren 的 BootCD,我运行了依赖性遍历器msgina.dll 上的工具报告:
ODBC32.DLL Error processing file. This file may not be a valid 32-bit or 64-bit Windows module.
我用 dllcache 文件夹中的 ODBC32.DLL 替换了损坏的文件,并再次运行 Dependency Walker - 没有错误。现在计算机可以正常启动 Windows。