I upgraded my PC to 4 GB RAM and I get only 3 GB. Windows 7 32-Bit consider that I've 4 GB RAM but didn't use more than 3 GB.

Someone told me that MS Windows 32-bit doesn't support RAM larger than 3 GB.

So please is there any way to make my OS "Windows 7 32-Bit" support more than 3 GB RAM ?

*`Note: I can't move to 64-bit because I've many program doesn't work with a 64-bit OS.


I tried what Mr. Wonsungi advised me but whenever I check this option:

Enable support for 4 GB of RAM

I get the following error:

'Cannot access to the registry key HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-11d1-A9F0-00AA0060FA31}.'

There is no "CLSID" in my registry, I don't know why!.

  • 23
    "many program doesn't work with 64-Bit OS" is not really a valid reason in the age of virtual computers. with VirtualBox (which happens to be free) you can run your 32-bit applications on a 32-bit windows virtual machine in seamless mode (integrated into the host OS) and hardly feel a difference (unless you need the full power of your graphics card available to these applications) – Molly7244 Nov 8 '09 at 18:13
  • I agree with Molly. And for 16-bit programs, you can use an emulator like DOSBox. dosbox.com – Sasha Chedygov Nov 8 '09 at 18:56
  • 1
    If you own Windows 7 Professional, Enterprise or Ultimate, consider checking out Windows XP Mode: microsoft.com/windows/virtual-pc – alex Nov 8 '09 at 19:24
  • I'm using many 32-bit programs on Win7 64bit. They date from 1998 to 2001. Most require compatibility modes to work. Are you making an assumption it won't work, or someone told you it won't work? Have you actually tried? – kmarsh Nov 9 '09 at 15:00
  • ad Edit1: I understood that you didn't upgrade to 4 GB yet...so you don't know yet, if it works or not, right? To make sure it works, you need to upgrade b/c there's not only Win but also HW limitations. Do upgrade and then give us more - detailed - infos on your setup if it doesn't work. – Gerd Klima Nov 10 '09 at 6:53

You can use PAE, but it's not nearly as good as just going 64 bit. Check this MSDN Page.

Enabling PAE

Windows automatically enables PAE if DEP is enabled on a computer that supports hardware-enabled DEP, or if the computer is configured for hot-add memory devices in memory ranges beyond 4 GB. If the computer does not support hardware-enabled DEP or is not configured for hot-add memory devices in memory ranges beyond 4 GB, PAE must be explicitly enabled.

To explicitly enable PAE, use the following BCDEdit /set command to set the pae boot entry option:

bcdedit /set [{ID}] pae ForceEnable

IF DEP is enabled, PAE cannot be disabled. Use the following BCDEdit /set commands to disable both DEP and PAE:

bcdedit /set [{ID}] nx AlwaysOff
bcdedit /set [{ID}] pae ForceDisable

Windows Server 2003 and Windows XP: To enable PAE, use the /PAE switch in the boot.ini file. To disable PAE, use the /NOPAE switch. To disable DEP, use the /EXECUTE switch.

  • 1
    I found this To explicitly enable PAE, use the following BCDEdit /set command to set the pae boot entry option: bcdedit /set [{ID}] pae ForceEnable at the MSDN page that u provided. But i don't know how and where to write this command. Could u help me please ?. – Wahid Bitar Nov 8 '09 at 12:06
  • 5
    If you don't know how to do it from that, I highly recommend not doing it at all, if something goes wrong you'll need that knowledge to rescue your system. – Phoshi Nov 8 '09 at 13:23
  • 4
    the PAE switch is not some hidden miracle and certainly not the holy grail for 4 GB 32-bit systems (or else everybody would be using it, right?). it may cause system instability. – Molly7244 Nov 8 '09 at 13:27
  • 2
    The PAE switch still won't allow you to use the entire 4gb of RAM. See my response below for a solution which overcomes this issue. – Breakthrough Sep 9 '10 at 15:40
  • 2
    "Certain 32-bit versions of Windows Server running on x86-based systems can use PAE to access up to 64 GB or 128 GB of physical memory." This post ONLY applys to Windows Server - 32bit desktop versions of Windows will only address 4GB. It's a licensing issue not a hardware or software issue, running this command will not change that fact - msdn.microsoft.com/en-us/library/aa366778(v=vs.85).aspx . – Natalie Adams Sep 7 '12 at 2:30

Read this: Dude, Where's My 4 Gigabytes of RAM?

For general info, there is also this overview on memory limits per Windows edition:

Memory Limits for Windows Releases

  • They say it is an X86 problem. Can you explain me why 32 bit OSX has no problem adressing 16 Gb in a MacPro then? – bert Nov 8 '09 at 17:44
  • By the way, in 8 and 16 bit land, it was very common to have RAM amounts beyond 2^bit bytes. – bert Nov 8 '09 at 17:45
  • 4
    The wikipedia entry for PAE (Physical Adress Extension) states: Mac OS X Mac OS X for Intel Macs supports PAE and the NX bit on all CPUs supported by Apple (from 10.4.4—the first Intel release—onwards). Mac Pro and Xserve systems can currently support 32 GiB of RAM, even though the Mac OS X 10.5 Leopard kernel remains 32-bit. The Mac OS X 10.6 Snow Leopard kernel can optionally run in 64-bit on certain systems en.wikipedia.org/wiki/Physical_Address_Extension – Gerd Klima Nov 8 '09 at 19:22
  • 1
    OSX 32 and Linux Kernel 2.6 32 are essentially 32/64 byte operating systems, using primarily 32 bit instructions but using some 64 bit memory addressing, particularly for the file system and O/S memory allocation. Programs running on them are still subject to some 32 bit limitations. – kmarsh Nov 9 '09 at 15:03
  • 5
    This is incorrect. 32-bit versions of the Linux Kernel are not some weird 32/64 byte [sic] operating system. They are 32-bit operating systems that, if the right options are selected, can make use of PAE to address 2 ^ 36 bytes of memory, though less than 2 ^ 32 per process. If the kernel is 64-bit, it uses 64-bit addressing. – ChrisInEdmonton Dec 1 '09 at 14:06

Recently, a group of programmers have released a kernel patch for Windows 7 to allow the usage of more than 4 GB of RAM under Windows 7. Click here to download the patch, or view more information about it. The patch basically modifies the Windows 7 kernel to be more like the Windows Server 2003 Datacenter Edition, which is compatible with up to 8 GB of RAM under 32-bit mode.

The patch allows you to extend the PAE well into 8 GB of RAM under Windows 7 32-bit. For more information about why Microsoft implemented this technical limitation, see this article.

Note that individual processes will still be limited to 4 GB even if the system can access more... Although if you had 8 GB of RAM, then at least you'd still have another 4 GB for other processes ;)

  • 1
    I have been using this patch for months now, and have experienced no problems. Some programs (esp. Photoshop) have no trouble when using a lot of RAM. :) – Breakthrough Jan 4 '11 at 12:58
  • 1
    Remember that modyfying your system files violates your product licence and voids your warranty. – kinokijuf Feb 25 '12 at 12:27
  • I want to chime in and say that the hack will probably work for awhile. But updating your system would probably be a game of Russian roulette - Microsoft probably isn't going to purposely plug the kernel hole but an update could leave your system borked. – Natalie Adams Sep 7 '12 at 2:32
  • @NathanAdams this isn't a "hole", it's a result of licensed memory (see the article I linked to above). This patch also copies the existing kernel before patching it, so if you're worried, you can simply boot up into Windows without the patch to run Windows Update. – Breakthrough Sep 7 '12 at 11:05

The answer to this question is really "depends on who you ask".

Some say to use PAE, which will allow you to address higher than 4GB BUT Microsoft will NOT let you on many of 32bit versions of Windows.

The following table specifies the limits on physical memory for Windows 7.

Physical 4GB limit, period. It's a licensing issue. There might even be a "hack" floating around to let you use more than 4GB, but I don't remember.

Please do note: Vista and Windows 7 on 32bit will report the TOTAL PHYSICAL RAM you have in System, but it will ONLY use 4GB of it. So, shoving 16GB in a computer running 32bit Windows will only use 4GB ACCORDING TO MICROSOFT even though "System" control panel will show 16GB. Windows 7, Vista, and XP 32bit will only use 4GB of RAM, its a fact. However, certain versions of Windows Server WILL use more than 4GB with PAE enabled.

For those going "your wrong PAE will allow you to to use more than 4GB", yes I agree, however, Microsoft says that you can only use 4GB on most of the 32bit desktop OS so if you feel that page is in error send them an email or call them to complain.

  • 4GB is an artificial limit. Intel hardware can handle much more. Even a 32-bits operating system, allocating memory in pages of 4K, and assuming that it stores the page number in a 32-bit integer, can easily handle 4GB x 4K = 16TB. Per-application, the byte addressing limit for a 32-bits register is 4GB. So if MS says 4GB for the OS, this is simply a marketing hype, backed by a simple limitation that the article cited in my answer has localized to a very few hardware instructions in the kernel. – harrymc Nov 11 '09 at 9:32
  • 2
    Reread my post again please, Microsoft has this limit due to licensing. I never said you can't use more than 4GBs in a 32bit OS, you simply can't in the desktop versions of Windows, period. This is the facts. To "fix" it isn't a simple registry fix either. You need a disassembler, a hex editor, knowledge of Assembly and some luck. – Natalie Adams Nov 11 '09 at 19:41

As far as I know, 32-bits Window can use memory up to 64 GB, and can be "hacked" to do so.
This hack is fully described here: Licensed Memory in Windows Vista.
(Note: I do not advice anyone to actually try it.)
It also makes interesting reading, since it explains very well all the concepts involved.
I reproduce below his proof-of-concept image.

That 32-bit editions of Windows Vista are limited to 4GB is not because of any physical or technical constraint on 32-bit operating systems. The 32-bit editions of Windows Vista all contain code for using physical memory above 4GB. Microsoft just doesn’t license you to use that code.


  • Please see my comment above, Vista and above will report the TOTAL PHYSICAL memory in that window. That is NOT the total amount the OS will use. For one I am sure that hack is out dated and probably won't work in Vista SP2. Furthermore, 64bit processors are being the norm, so there is no reason not to use a 64bit OS. – Natalie Adams Nov 11 '09 at 1:50
  • @Nathan: The article I cited makes for a very compelling reading. From what I know about Intel architecture, 32-bits or not, the only real limit should be 4GB per-application. – harrymc Nov 11 '09 at 8:05
  • EDIT : See Windows 7 32-bit with full 4 GB or 8 GB RAM support. – harrymc Sep 3 '11 at 10:20
  • I'm pretty sure that violates the EULA. So, I would NOT recommend installing that patch. – Natalie Adams Sep 13 '11 at 4:32
  • @Nathan Adams: Nor did I recommend it. – harrymc Sep 13 '11 at 4:48

Someone told me that MS Windows 7 32-bit doesn't support RAM larger than 3 GB.

Someone is wrong. 32-bit Windows desktop operating systems support up to 4 GB of physical memory. However, due to the hardware limitations of the x86 architecture, only 3.5~ GB are available for the OS if 4 GB are installed.

  • 2
    This is incorrect. 32-bit Linux, for example, has no problem supporting 4 GB of RAM. Or, say, 64 GB of RAM, though with per-process limits of course. Heck, some versions of 32-bit Windows support more than 4 GB of RAM. See en.wikipedia.org/wiki/… – ChrisInEdmonton Nov 8 '09 at 13:47
  • 2
    what is incorrect??? 32-bit windows supports up to 4 GB physical memory, end of story (unless limited by other factors, i.e. the 'starter' editions), this table you are referring to INCLUDES 64-bit versions of windows such as the early windows 2000 advanced server and data center. get your facts straight, quote: "The table includes some 64-bit versions" – Molly7244 Nov 8 '09 at 16:13
  • 1
    "Microsoft Windows 2000 Advanced Server Limited Edition and Windows 2000 Datacenter Server Limited Edition were designed for 64-bit Intel Itanium microprocessors." – Molly7244 Nov 8 '09 at 16:20
  • 1
    Windows 2000 Advanced Server uses PAE on 32-bit systems to access up to 8 GB of RAM. There's also an IA-64 version, but that's not the one I'm talking about. – ChrisInEdmonton Nov 8 '09 at 18:45
  • 1
    well, i don't care much for this argumentation or comparisons with exotic/outdated server or *nix operating systems , the OP claimed that windows 7 32-bit doesn't support more than 3 GB RAM which is WRONG, it supports up to 4GB, get it? but to please you i will edit my answer accordingly. – Molly7244 Nov 8 '09 at 18:57

Just curious, can you give some examples of programs that don't work on 64-bit windows? 64-bit Windows since Windows XP has excellent backwards compatibility with 32-bit programs. Check the 5th question on this page: http://windows.microsoft.com/en-US/windows-vista/32-bit-and-64-bit-Windows-frequently-asked-questions. Take Microsoft Office for example, it's all 32-bit, but runs great on 64-bit Windows.

The only time you wouldn't want to move to 64-bit is if you have hardware that doesn't have 64-bit drivers. Hardware drivers must match the OS platform.

  • The Juniper VPN software my employer uses does not work on a 64 bit OS. – user4491 Nov 8 '09 at 20:59
  • 2
    VPN software falls more under the "driver" category. – churnd Nov 9 '09 at 0:33
  • I've many "Arabic" programs doesn't work with 64-Bit. Also i have some "old" hardware doesn't have 64-Bit Drivers. – Wahid Bitar Nov 9 '09 at 11:33

This patch works or so it seems.

Before the patch I could use 3gb out of 4gb, and now all 4gb is accessible.

Here's the patch:


Here's the screenshot (Windows 7 Ultimate Hungarian):

enter image description here


The link below sets out a manner to

  • take a copy of the kernel
  • hack it to use 4GB and above of RAM (edit the hex strings 7C 11 8B 45 FC 85 C0 74 0A and 7C 10 8B 45 FC 85 C0 74 09 to 7C 10 B8 00 00 02 00 90 90 and 7C 10 B8 00 00 02 00 90 90 respectively)
  • sign it with makecert -r -ss my -n "CN=My Cert" and signtool sign -s my -n "My Cert" ntkl64g.exe
  • and add it as a secondary boot option with bcdedit

in a very clear and straight forward way


Which worked for me.

Not the answer you're looking for? Browse other questions tagged or ask your own question.