I have 4 GB of RAM installed, but why are only 2 GB are usable?

Use MSConfigBootAdvanced.

Is the box 'Maximum Memory' checked?


It's because Microsoft intentionally made this software limitation - 4GB memory - under 32-bit Windows Vista/7. This is a way to upsell the more expensive 64-bit OS.

This post has all the details. Licensed Memory in Windows Vista:

I say the restriction to 4GB is a licensing issue because that’s how Microsoft’s programmers evidently have thought of it. The 4GB limit is retrieved from the registry by calling a function named ZwQueryLicenseValue, which is itself called from an internal procedure which Microsoft’s published symbol files name as MxMemoryLicense. If you remove this check for the licensed memory limit then a restriction to 4GB is demonstrably not enforced by other means. Yet I must admit that I have not found where Microsoft says directly that 32-bit Windows Vista is limited to 4GB only by licensing. The supposed License Agreement doesn’t even mention the word memory. What, really, is going on?


Ah, I see you have a Dell. Mine is similar -- a 4GB Dimension 5150 system that only reports 3.3GB as installed, all of it usable. This was the case under Vista-32, Windows7-64, and assorted Linux distributions of both bitness-es.

In my case, this is a limit of the chipset -- the onboard video appears to sit on a large part of mappable memory, making it unusable to the OS.


My guess is that it is a mixture of 32 bit which takes you down to ~3.5 GB, and then the rest is being taken up by on board graphics, but to be honest, 1 GB+ of video RAM does seem like a lot.

Do you have a load of PCI / add ons to your pc? These may be eating up the addressable resources.