5

Back in the Windows 7 days, Windows Memory Diagnostics Tool was unable to scan RAM beyond 4GB:

...the tool can address only up to 4GB of RAM and will not scan beyond that range.

Fast-forward to today. Windows 10 has, built in, a (presumably) later version of the Windows Memory Diagnostics Tool tool. I am running it now on a PC with 16GB RAM. But the GUI is extremely plain. It does not show what amount or range of RAM it's scanning.

Does anyone know if this latest Windows 10 incarnation of the tool scans all 16GB of RAM, or is it still limited to the first 4GB like previous versions?

Extra info for the extra curious:

Windows Memory Diagnostics Tool does not run under Windows. It is a bare-metal app that has direct access to physical RAM (well, almost direct, but no need to get too technical). Without being privy to the source code, we can only speculate how it runs under the hood and why there was/is a 4GB limit. Clearly even 32-bit bare-metal apps can gain access to physical RAM above 4GB, so long as such apps utilize protected mode together with PAE. That's exactly how Memtest86 used to do it, before native 64-bit support was introduced.*

Ultimately, this question is not about what is possible and how, but what Windows Memory Diagnostics Tool is capable of. Is the latest version that ships with Windows 10 still limited to the first 4GB of RAM?

  • Where did you read about the 4gb limit? – Moab Feb 16 '16 at 18:14
  • 2
    @misha256 32-bit applications have no specific physical memory limits. This a common myth. They do have a 4GB virtual memory limit. – David Schwartz Feb 16 '16 at 18:40
  • 1
    @misha256 Yes, so it would be even less affected by OS limitations. The comment makes even less sense in that context. A 32-bit bare metal application can map whatever physical memory it wants anywhere in its 32-bit space. – David Schwartz Feb 16 '16 at 18:47
  • 2
    @misha256 I'm not saying your question is invalid. I'm just correcting misinformation in your comments. I have seen literally hundreds of cases where misinformation thrown into a question or comment has caused confusion or bugs, sometimes years later. That 32-bit applications are limited to 4GB of physical memory is a common myth that needs to be stamped out. They are limited to 4GB of directly addressable virtual memory. – David Schwartz Feb 16 '16 at 18:54
  • @misha256 I agree. All that's relevant is: 1) You said 32-bit applications have some limit to how much physical memory they can address. 2) That is false. – David Schwartz Feb 16 '16 at 22:36
1
+250

This is how I went about examining the question :

I first opened the Windows 10 ISO :

image1

And extracted the memtest.exe file, dating from 2015 (a good sign), then examined it :

image2

To find out to my great surprise that this is only a 32-bit program. But of course it could still be using PAE to test more than 4 GB.

I then started the memory test on a VM with Windows 10 and 8 GB of RAM. The test results are well-hidden, but I found them in the Event Viewer, under Windows Logs -> System, as events which have "MemoryDiagnostics" in the Source column :

image

As you can see, Windows claims that the test on 8GB has passed.

So Microsoft's answer to your question is : Yes, we can. It would have been incredible had it been otherwise.

  • Weird, how come you can run this tool within Windows itself? On my end the PC reboots into what looks like an old-school DOS GUI and the actual memory test happens there: blog.maselectronics.com/wp-content/uploads/2011/07/… – misha256 Feb 19 '16 at 18:41
  • My first answer was too simplistic, so I rewrote it. – harrymc Feb 19 '16 at 20:47
  • omg, he doesnt run tool within windows, he run it via control panel->check memory... – NoAngel Feb 21 '16 at 1:58
  • @NoAngel: I don't understand. Memory Diagnostics reboots to run - the Windows application GUI is only for starting it. – harrymc Feb 21 '16 at 7:37
  • @harrymc, Your answer is fine, I mean that comment how You run tool within Windows, I tried to write how. – NoAngel Feb 21 '16 at 8:47
0

That tool above is too old and indeed it supports only up to 4GB of RAM.

But Windows built in memtest.exe is different. I opened Windows 7 64-bit c:\Boot\memtest.exe, and it shows me, that it's 32-bit application. I guess Microsoft made one tool for both 32-bit/64-bit hardware. That will run instead of Your OS, in "pre-OS mode", PC "boots" into memtest instead of Your OS. Tool may work in its own mode, not linked to OS(64-bit mode or 32-bit or even 16-bit "real" mode). Tool doesn't use any OS components, like DLLs, device drivers. I believe if we have same binary for 32-bit and 64-bit it should check all available memory including Your 16GB.

  • 1
    Windows 7 x64 - C:\Boot\memtest.exe does not exist. Yours might be a remnant of some 32-bit application that you installed. – harrymc Feb 19 '16 at 9:49
  • @harrymc It does exist on my PC. Probably on Your PC memtest.exe is inside hidden system partition still in Boot folder there. I have no apps for checking memory, it is built in Windows tool. – NoAngel Feb 21 '16 at 8:53
  • @misha256 Yes I agree, I edited comment. It's IMHO safe to assume that all good for this tool. If it was some special 64 bit memtest version, well then it was reason to do it, but we have same binary as for 32 bit OS. – NoAngel Feb 21 '16 at 9:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.