WINDOWS 7 旗舰版 X64 SP1
我最近一直在尝试一款名为斯巴达人,它配备了大量聪明且实用的功能,但学习起来似乎比较困难。
安装后第一次启动该程序时,出现以下错误消息:
“无法在动态链接库 ntdll.dll 中找到程序入口点 RtlGetNtSystemRoot。”
错误消息对话框的标题栏显示程序名称,“SpartanClips.exe”。
需要注意的是,这不是一个致命的错误:程序仍然能够启动,而且据我所知,它仍然运行良好。
每次程序启动时,我都会收到相同的错误消息。
在程序文件夹 [C:\Program Files (x86)\Spartan Standard] 中,有 2 个可执行文件:“SpartanClips.exe”和“Lnch.exe”其中第二个似乎是外部程序的启动器,例如系统默认浏览器。
现在,Spartan 主窗口中的“帮助”菜单包含许多项目,其中大多数都需要启动浏览器,如果我单击任何此类菜单项,我会收到与上面相同的错误消息,但消息对话框的标题栏包含程序名称“Lnch.exe”。
再次强调,这个错误并不致命:系统默认浏览器启动并将我带到相应的网页。
尽管我还没有注册该程序,但开发人员非常愿意提供尽可能多的帮助,但不幸的是,他也不明白为什么 ntdll.dll 会出现错误,因为他的程序没有对 ntdll.dll 进行任何调用,他建议可能存在以下问题:内核32库或者shell32.dll,因为程序“Lnch.exe”仅在启动默认浏览器时调用这两个 dll,他认为其中一个或多个文件可能已损坏,可能需要检查并修复它们,以及下载并安装 Spartan 程序本身的全新副本。
现在,卸载并重新安装 Spartan 没有任何区别,运行“证监会/SCANNOW,”没有发现任何问题。
Spartan 程序文件夹还包含许多其他 DLL:
C 盘中的卷为 SYSTEM
卷序列号为 0CAC-7592
C:\Program Files (x86)\Spartan Standard 目录
2017-04-12 11:28 78,336 ASYCFILT.DLL
2017-03-18 19:18 8,704 COMCAT.DLL
2017-03-18 19:18 27,136 CTL3D32.DLL
2009-07-14 01:15 1,386,496 msvbvm60.dll
2017-04-28 02:19 605,936 OLEAUT32.DLL
2017-04-28 01:33 89,088 OLEPRO32.DLL
2014-12-26 14:40 86,016 SPELL32.DLL
1997-01-16 00:00 29,696 VB5STKIT.DLL
2002-11-15 15:43 225,280 vic32.dll
9 个文件 2,536,688 字节
0 个目录 836,495,990,784 字节可用
虽然我知道其中一些 DLL 是什么,但我对其他一些 DLL 感到有些困惑,特别是那些文件日期非常古老的文件。(有一个文件的日期是 2009 年,另一个文件的日期是 2002 年,还有一个文件的日期是 1997 年)!
如果有人可以给我一些关于如何使用 Windows 事件查看器查找 ntdll.dll 失败调用日志的提示,我可能会提供一些进一步的信息。
此外,如果有人能向我解释一下上面列出的所有(或任何) 9 个 DLL 的用途,我将不胜感激。
最后一个请求:如果有人觉得这篇文章可能需要一些更有用的标签,我将非常感谢您的建议。
在此先感谢您的帮助!
答案1
这不是什么奇怪的错误。开发人员调用了一项功能,该功能ntdll.dll
仅在 Windows 10 RS2(创意者更新)中可用:
#if (NTDDI_VERSION >= NTDDI_WIN10_RS2)
_IRQL_requires_max_(PASSIVE_LEVEL)
NTSYSAPI
PCWSTR
NTAPI
RtlGetNtSystemRoot (
VOID
);
#endif // NTDDI_VERSION >= NTDDI_WIN10_RS2
请求支持人员获取兼容 Windows 7 的版本。