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

Rate This
  • Comments 4

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.


Leave a Comment
  • Please add 7 and 6 and type the answer here:
  • Post
  • what I am curious about is the Task Manager 'Mem Usage' for VirtualPC.exe in the host system. During the 2004 beta this seemed to indicate the total memory taken by the process and by the VMs that were running. Now that memory seems to be tucked away somewhere and not reported by any tools.
  • Hi Scott,

    This is actually purely accidental. Moving from VPC 5.2 --> VPC 2004 we change the way that we allocate memory to virtual machines (done for various technical reasons) and it turns out that Task Manager does not successfully track the mechanism we now use.

  • Is all memory allocated upon initialization of the vm?

    And is the behaviour the same in VS2005?
  • Yes, and yes.

Page 1 of 1 (4 items)

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