Make Windows 7, 8 and 10 32-bit (x86) Support More Than 4GB Memory

By | October 7, 2018

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.

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 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 ntkrnlpx.exe (for Win 8 use ntoskrnx.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.


Password is: abcd

Leave a Reply

Your email address will not be published.