
This article is written for 32 bit operating systems. Unless explicitly mentioned, Windows 7 and Vista refers to the 32 bit edition of the respective Operating Systems.
Couple of months back, I had blogged about a peculiar Windows 7 issue which could cause a BSOD (Blue Screen of Death) if the system had 4GB (or more) RAM. I managed to find a fix for that issue. But, I had another minor niggle to figure out. Although I paid for 4GB of RAM, Windows refused to use more than 3GB. If you have 4GB or more RAM then you are probably familiar with the following screen.

Computer Properties displayed installed memory as 4GB but at the same time stated that only 3 GB is usable. So, where did the remaining memory go?
As it turns out, chunks of your RAM are reserved for various purposes and are not available to the operating system. For example, PCI Express support will reserve 256-768 MB depending upon the graphics adapter. Due to this Windows always displays less than 4 GB RAM as the amount of usable memory. Depending upon your hardware, anywhere between 2.75 GB and 3.5 GB of RAM will be available to the OS.
But, what if you have more than 4 GB RAM? Even on a system with 32 GB RAM, 32 bit editions of Windows will display less than 4 GB of memory. This is a known limitation of the Windows Vista and 7 x86 editions.
Microsoft claims that it is not their fault and is instead a limitation of the 32 bit architecture. At first glance this seems correct. 32 bit processor using 32 bit registers should be only able to address up to 4 GB of RAM (232 = 4G). However, this is not actually true. The main reason being a feature called Physical Address Extension (PAE).
PAE makes it possible to address more than 4 GB of memory using 32 bit registers, since the registers aren’t used to store the physical address. Instead, the registers store linear addresses, which are mapped to physical addresses using the page table. This feature has been available since the days of Intel Pentium Pro. In x86 processors additional address lines are provided so that up to 64 GB can be addressed when using the PAE mode. If you want to learn more about Windows memory addressing, go through Geoff Chappell’s notes.
Windows Vista and 7 have two kernels – one which doesn’t use PAE and one which does. They are NTOSKRNL.EXE and NTKRNLPA.EXE respectively. Both of them reside within the Windows/System32 directory. Can you guess which one you are using? If you have a modern machine, then chances are that Data Execution Prevention (DEP) is enabled in your system and in that case you are already using the kernel with PAE enabled.
How to Enable More Than 4 GB Memory
Before getting started, keep in mind that this patch involves modifying the kernel. Do no proceed unless you are confident. Most security products will identify these patches as malicious since they modify the Windows kernel.
Download the appropriate patch for your system (links at the end of this post). I haven’t tried the Windows Vista patch, but I can confirm that the Windows 7 patch works. The Windows 7 patch is in Russian language. To begin patching click on the big button (refer to screenshot). After this a command prompt window should appear. Press Y.
On restarting the system, you should see two entries in the Windows Boot Menu – one being the older configuration and the other being the one with support for more than 4 GB RAM. If you don’t want to be prompted every time, press Win + R, type msconfig and hit Enter. Under the Boot tab, reduce the timeout value (to something like 3 sec). If you wish, you can simply get rid of the older configuration by deleting it. But I wouldn’t recommend this. If you get a water mark (Test Mode) on your desktop after restarting, type mcbuilder.exe in the Start Menu and press Enter.

Windows Vista Patch

Windows 7 Patch: Step 1 (Click on the button)

Windows 7 Patch: Step 2 (Press Y)
This patch will allow the OS to use more than 4 GB of memory. However, it does have a limitation – more than 3 GB of memory cannot be allocated to a single application. This patch is mainly targeted at systems with more than 4 GB of RAM. However, in some cases installing this patch on 4 GB systems will also lead to an increase in available memory (which may not necessarily result in performance improvement). This may appear to be a bit strange since Windows 7 and Vista are technically capable of addressing up to 4 GB of memory. Obviously, there is a logical explanation for this behavior. But, I won’t discuss it here. Refer to Geoff Chappell’s notes on Physical Memory Map if you wish to explore the issue in detail.
Warning: The patches described in this article are kernel patches. They may result in unexpected hardware issues and expose your system to malicious exploits.
Download Links:
4GB Memory Patch for Vista 32 bit (SP1 and SP2)
4GB Memory Patch for Windows 7 32 bit
[Image Courtesey: Brajeshwar]








Thanks Pallab for the post.
Anish K.S´s last blog ..Installing Fennec on Nokia N810
For people with big graphics cards 1GB or more and having issues with x64 this could be the answer. Having a card with 1GB of Video RAM and still being able to utilize their full 4GB of system RAM. Benchmarking seems to show no performance issues to.
the link to patch Windows Vista is broken, you fix it? thanks
The link is fine. Anyway, I added mirrors for both the files.
Thank you very much for this post. The patch works great for Windows 7, very stable. I have 8 gigs of ram and was only registering 3 gigs of it before the patch.
[...] A questo punto mi son chiesto se qualche hacker non avesse trovato il modo di patchare il kernel ed infatti interrogando google con le parole "windows patch 4Gb" ho trovato quel che cercavo (Windows 7 RTM 7600 4Gb patch, che potete scaricare dai link in fondo alla pagina da cui ho preso spunto). [...]
How can i do rollback of trhis patch.
I have BSOD’s every 10 mins!
The Vista patch creates a backup of the ntkrnlpa.exe. You need to replace the patched file with the original file (backed up).
For the 7 patch use msconfig to remove the patched bootmenu entry.
hi all :
i also am in the same boat , i have 7 and have down loaded the patch , i went from showing 4gb to showing 6gb and i have 8 installed, how do i know if the other 2gb or ram are working ?, so far all is well except the above…any replys would be appreiciated,,
Hi All:
well all is well under the hood here , many thanks for the tip !
now does anyone have any views on what to do with the paging file now that the ram has changed?. with 6bg of ram what are some suggestions to make min & max ?, and is it benificial to use a flash drive to put the pagging file on if no other hard drive is available?
Glad that the patch worked for you. As far as paging file is concerned, I don’t believe in the 1.5x theory. It makes no sense. A system with a small amount of RAM would require a large page file while a system with a large amount of RAM would require a smaller page file. Not the other way around.
I wouldn’t allocate more than 3GB to the page file. However, the most important thing is to set a specific value. Don’t set a range. Otherwise the OS would be busy just resizing the page file.
It is better to have the page file on a separate hard disk. If that is not possible place it on a different partition. Even better, use a 4GB high speed pen drive in Ready Boost mode. This would burn out the pen drive in a few months, but they are quite cheap anyway.
Hi : and thank you for the reply and the great tip ,
so are you saying to keep both the same size then, and STILL GO WITH THE READY BOOST, I HAVE A 8GB HI SPEED AND WILL TRY IT. what program could i use to see if there is any difference??
i really appreciate all ur time and expertiece,
Jeff
8GB of ready boost is going to be an overkill. You can use a cheaper 4GB usb drive (if you have it). I am saying this because, make no mistake about it – Readyboost will reduce your usb drive’s lifespan.
If you are going to use readyboost, I suggest setting a really low page file size (1024MB) should be enough.
You can try 3d benchmark software like 3DMark. I got a significant performance boost with ReadyBoost in games. Normal application performance won’t be vastly different since most of them simply don’t use more than a couple of hundred MBs of RAM.
hi: well i just happened to have 2of these 8gb hi speed drives so used the one,
what are your thoughts on superfetch??
on or off ??
make your paging file 1 and 1/2 x the size of your ram. so for example if u have 4gb ram make paging file 6gb..
thank you for the reply , shall the ppaging file be on the same drive as the os or a high speed usb flash
the total memory installed is 6gb , so should i use 6gb for the min and
9 gb for the max, ??
I have 4GB RAM so i got the Windows 7 64bit version instead.
Hi there,
The link for windows 7 32 bit is no longer available. Can anyone post me the link? or better still email the file?.
Thanks & regards,
hue
Hue C.M, I am looking for the same W7-32Bit file. If you get it from somewhere could you either send me the link or email me the content.
Thanks
Hi guys, I have updated the links.
when someone finds the link i would be interested in it as well as i didnt save it ,,
thank you ,
jeffn0506
if someone will send this to me the patches I will post on my server for download
i have downloaded this file before…here is the link of the file —>> http://rapidshare.com/files/402638958/4GB-7600.RTM.x86.04.08.2009.exe.html
hope to help you guys out…
the rapid share link gave me (3) trojans
thanks pal .
Thanks mate. It worked perfectly fine for me..
[...] [...]