Why does WINMSD.EXE report that my virtual machine only has 64mb of ram?

A couple of people have noticed that if they run WINMSD.EXE on their virtual machine it reports that they have 64mb of ram – irrespective of the amount of ram that they actually have assigned to the virtual machine.  The reason for this discrepancy is actually quite simple.  There are two ways to find out the amount of memory that is available to you at a low level – you can:

  1. Ask the BIOS how much memory it has
  2. Ask the motherboard what the size of each memory DIMM is and sum the values

Now – we support any arbitrary value of memory for a virtual machine (for instance – I have a virtual machine with 267 MB of ram).  This is easy to handle with the first method – but it is pretty much impossible with the second method. 

Thankfully – it turns out that almost everyone uses the first method.

So what we do is report the correct amount of memory through the BIOS – but if you query our motherboard – it will report 8 DIMMS with 8MB each.  Totaling to 64MB ram.

And guess what – WINMSD.EXE uses the second method.