Windows 内存诊断工具会扫描超过 4GB 的 RAM 吗?

Windows 内存诊断工具会扫描超过 4GB 的 RAM 吗?

回顾 Windows 7 时代,Windows 内存诊断工具无法扫描 4GB 以上的 RAM:

...该工具只能处理最多 4GB 的 RAM,并且不会扫描超出该范围的内容。

快进到今天。Windows 10 内置了 Windows 内存诊断工具的(大概)更高版本。我现在在一台 16GB RAM 的 PC 上运行它。但 GUI极其朴素。它没有显示正在扫描的 RAM 数量或范围。

有人知道这个最新的 Windows 10 版本的工具是否可以扫描全部 16GBRAM,还是仍然像以前的版本一样限制为前 4GB?

给特别好奇的人的额外信息:

Windows 内存诊断工具无法在 Windows 下运行。它是一个可以直接访问物理 RAM 的裸机应用程序(好吧,几乎是直接访问,但不需要太技术化)。由于不了解源代码,我们只能推测它在后台是如何运行的,以及为什么有 4GB 的限制。显然,即使是 32 位裸机应用程序也可以访问 4GB 以上的物理 RAM,只要这些应用程序利用保护模式和...一起聚丙烯酰胺凝胶电泳. 这正是Memtest86在引入本机 64 位支持之前,曾经这样做过。*

归根结底,这个问题不在于什么是可能的以及如何实现,而在于 Windows 内存诊断工具能够做什么。Windows 10 附带的最新版本是否仍限制为前 4GB RAM?

答案1

我对这个问题的探讨如下:

我首先打开了 Windows 10 ISO:

图片1

并提取了 2015 年的 memtest.exe 文件(这是一个好兆头),然后对其进行了检查:

图片2

令我惊讶的是,这只是一个 32 位程序。但当然它仍然可以使用聚丙烯酰胺凝胶电泳测试超过 4 GB。

然后,我在装有 Windows 10 和 8 GB RAM 的虚拟机上启动了内存测试。测试结果隐藏得很好,但我在事件查看器中找到了它们,位于Windows 日志 -> 系统,作为在来源列中具有“MemoryDiagnostics”的事件:

图像

如您所见,Windows 声称 8GB 上的测试已通过。

所以微软对你的问题的回答是:是的,我们可以。如果不是这样,那真是太不可思议了。

答案2

上面的工具太旧了,而且它确实只支持最多 4GB 的 RAM。

但是 Windows 内置的 memtest.exe 有所不同。我打开了 Windows 7 64 位 c:\Boot\memtest.exe,它显示它是 32 位应用程序。我猜 Microsoft 为 32 位/64 位硬件制作了一个工具。它将代替您的操作系统运行,在“预操作系统模式”下,PC“启动”到 memtest 而不是您的操作系统。工具可能在其自己的模式下工作,不链接到操作系统(64 位模式或 32 位甚至 16 位“真实”模式)。工具不使用任何操作系统组件,如 DLL、设备驱动程序。我相信如果我们有相同的 32 位和 64 位二进制文​​件,它应该检查所有可用内存,包括您的 16GB。

相关内容