As you’ll know, there has been 2 versions of each Windows starting from XP which are 32-bit and 64-bit editions. Sometimes a Windows 32-bit is referred as x86 and 64-bit as x64. We won’t go into details on what are the differences between x86 and x64 are, but one of the major differences is a 64-bit Windows can support more than 4GB of RAM. If your computer has 4GB of RAM and you’re using a 32-bit Windows, you’ll notice that only about 3GB – 3.5GB is being recognized and the remaining memory is gone. Weirdly, Windows 2003 and 2008 can already address more than 4 GB of memory so why can’t we do that with Vista and newer operating systems?
The answer is: Microsoft doesn’t want that and it’s all just a licensing matter. Contrary to popular belief, there is no physical reason why a 32-bit Windows cannot access memory above 4GB, but it’s more a case of Microsoft opting not to allow it. Read the findings of software analyst Geoff Chappell to find out more.

We can of course go for a 64-bit version of Windows, but even today, there is still quite a lot of software which cannot run properly on x64, which can be inconvenient if you’re someone like us who installs and tests a lot of software. Not only that, Windows 64-bit doesn’t accept unsigned drivers unless you disable driver signature enforcement manually every time you boot. Quite frustrating… Well, here is good news for Windows 8, 7 and Vista users because we have some patches here to make your 32-bit Windows support more than 4GB of memory.
There have been a few 4GB patchers available, but unfortunately most of them haven’t been kept up to date. For example, the RamPatch tool over at unawave.de works quite well on Windows 7 RTM, but was never updated to reflect the changes to the kernel files in Service Pack 1. Also the program was removed from the website due to many false positives from antivirus software.

We have tracked down the program and you can download and try it out on Windows 7 if you wish. Although some users have reported no issues running the patched kernel file from SP0 on an SP1 install, we suspect there may be stability or compatibility problems that will arise as a result of this at some point. Consider this program a useful tool to test with and perhaps not something to use permanently.
Luckily, there is a method which has been kept more up to date, and although it’s not quite as easy to implement as the RamPatch tool above, it’s still not that difficult. PatchPae2 is by Wen Jia Liu, also known as “wj32″ who is behind the excellent Process Hacker task manager software. This is a small command line tool that will patch the needed system files to enable 4GB and more of memory in Windows Vista SP2, Windows 7 RTM and SP1, and Windows 8 RTM 32-bit. Follow the steps below to enable a patched system, the core system files ARE NOT overwritten meaning you can revert back without too much fuss.
1. Download the PatchPae2 command line tool and extract the zip file to a folder of your choice. For our example, we’re extracting to the root of the C drive.
2. Open a Command prompt with Administrator privileges by pressing the Win key, typing cmd into the search box and then simultaneously pressing Ctrl+Shift+Enter. Then type the following:
cd C:\Windows\system32
3. Now, Windows Vista and 7 users type:
C:\PatchPae2.exe -type kernel -o ntkrnlpx.exe ntkrnlpa.exe
Windows 8 users type:
C:\PatchPae2.exe -type kernel -o ntoskrnx.exe ntoskrnl.exe
This makes a copy of and then patches the Windows kernel file to enable the extra memory of 4GB and above.
4. Type the following to make a copy of and disable signature verification in the Windows loader file:
C:\PatchPae2.exe -type loader -o winloadp.exe winload.exe
5. Enter this to create an entry in the Window boot menu, you can change the text in quotes to what you want:
bcdedit /copy {current} /d "Windows Vista/7/8 (Patched)"

This should give you a “successfully copied to…” message with a number of BCDID characters returned in brackets, make a note of them as you will need to enter them in the following commands.
6. Enter the following commands in turn, pressing enter after each. Replace BCD_ID with the ID you got from step 5:
bcdedit /set {BCD_ID} kernel ntoskrnx.exe (for Win 8 use ntkrnlpx.exe)
bcdedit /set {BCD_ID} path \Windows\system32\winloadp.exe
bcdedit /set {BCD_ID} nointegritychecks 1
Now reboot your computer and you should get a new entry on the Windows Boot Manager to run the patched operating system.

The good thing here is if you have problems, you can simply switch to the unpatched normal system by rebooting because the kernel files were copied and not overwritten. When you boot the patched system, a quick check should show that your amount of memory is now fully utilized. Do note that you still might not get access to all memory if some of it’s shared with the video adapter, e.g. 512MB onboard graphics.

As you can see from the image above, we now have a 32-bit Windows 7 showing there is 6GB of installed RAM available.

This next image shows that Windows Resource Monitor confirms there is 6GB of memory installed and ready to be used, with over 5GB still available for use.
If you want to uninstall this patch again from your system, simply boot into the unpatched Windows, press the Win key, type msconfig and press enter. Then select the boot tab and highlight the patched boot entry, click Delete. This screen can also be used for reducing the timeout and selecting the patched install as the default o/s to boot into if you plan on keeping it permanently.

Also optionally go into C:\Windows\System32 and delete the ntkrnlpx.exe and winloadp.exe files. If after a Windows update you find the patch no longer works, re-run the command from step 3 to patch the kernel file again.

thanks a lot
Still no problems, been running 6gb ram for about 6 months now.. still not sure if i need 6gb ram, but it’s working.
thanks again Raymond.
just try it with asus n61jq (i7 cpu 4go memory) and I can encode with virtualdub in divx format 2h movie in same time i surf with 15tab open in firefox and all run very well for now
Hi everybody,
I just wanted to testify that this patch is really working !!!! I used to work with Win7 x64 since the the first released betas, just to take advantage of the 4gb installed in my HP Pavilion laptop DV5. Last week I decided to test by myself and installed Win7 32bits which first said ” 4gb and 3gb usable ” and my nvidia declared 1,5gb of total memory (including shared) and after applying the patch the system reports 4Gb of total RAM and the nvidia reports 2Gb of total memory. I Don’t have any issue for now, and all my applications run just fine including all the games I play.
So to say : THANK YOU GUYS, YOU MADE A HAPPY MAN !
still running 6gb RAM, everything is fine. and i sure do notice a difference in computer speed, it’s nice.
Thanks again.
Earlier, none of the patches worked for me on Windows 7 Ultimate. But now, it works well on Windows 7 Professional. I can see all my 4 GB RAM.
My 2 cents:
Does this work? Sure it does.
Does Microsoft want people doing this? Probably not.
Why? Two reasons:
1) Licensing. Yeah, it sucks, but this is one of the reasons.
2) Drivers. I haven’t confirmed this for myself, but I heard that device drivers will go haywire on a system running uncrippled PAE when the driver tries to address space above the 4 GB “ceiling.”
So for those two reasons (the latter good, the former not so good), Microsoft keeps XP/Vista/7 at the 4 GB barrier with hardware mapped within that limit (not above it). Microsoft Server OSes don’t have crippled PAE because server manufacturers usually follow a strict hardware compatibility list (HCL), and the drivers are written to take advantage of PAE.
Also, the actual limit on a 32-bit OS is actually 2^36, or about 64 GB of RAM (not 128 GB like Ady (#83 above) says)…
I have Windows 7 Ultimate 32 bits with 6gb ram, and patch works for me. Thanks
First, Thanks. I have a win 7 32 bit with 4gb installed memory. I tried the patch and it worked.
some people just go on writing loads of stories about cpu architecture and what microsoft says you should do, technology is totally about challenges where trials and errors are pron, remember no venture no success, so thanks a million times for this patch as it has just worked for me, thanks again, here is what to remove the watermark with;
try it for windows 7 , works perfect !! ,
about limitations in 32 bit architecture : stop acting like Microsoft kids , i remember the Z80 back in old days on 8 bits which theoretical can address 64 K and back then where lots of sinclairs with 128K . how was that possible ? how a 32 bit operating system can access 128 GB ( yes i tried this patch with 16 GB and there are not just numbers , the memory it is accessible and usable) …….
think twice before posting , microsoft it’s full of bull with pae and other crappy methods…. paging memory can be done in many other ways…
and of course : THX RAYMOND !!!
… problem solved
It seems to work. You need to enable the memory remapping in BIOS (it’s probably within the north bridge settings). This should remap the 2GB-4GB area to 4GB-6GB, therefore, no interleaving with the videocard or other memory mapped devices.
OMFG THIS WORKS try the last link and download the file. ( i have it ) and just hit the button then hit y and hey presto all 4gb :D im happy
Wow! Great thanks! It’s work!
I’m testing this patch in professional soft and games and see no problems!
Hey thanks a lot… its working on my windows 7
Yay! it works!
This patch really works. I tried both patcher for Vista and Win7.
This Russian version patch worked !!! I now have 4 gb of ram utilization !!! thanks raymond!!!..
Working on Vista Ultimate SP2
Just using this patch and the instructions of Geoff Chappell.
this is great. another reason to still buy 32bit OS’es
I have tried, and it worked in Windows 7 x86 RTM, fully recognized 4GB RAM! Thanks!
this patch really works.
Confirm, working, tested with 2 games running in parallel on my Win7 RTM 7600:D….
Nice… nice one…
Raymond,
Thanks for this one. I have windows 7 RTM. this patch work on x86 windows 7 enabling me to utilize full 4gb ram.
i already test it with windows 7
Thanks Raymond
now i can upgrade my ram without worry about x32 and x64
two thumbs up to you and who develop this nice program!