Take a look at our
ThinkPads.com HOME PAGE
For those who might want to contribute to the blog, start here: Editors Alley Topic
Then contact Bill with a Private Message

Remove 4GB limit in 32bit Windows (Vista/7)

Operating System, Common Application & ThinkPad Utilities Questions...
Post Reply
Message
Author
dr_st
Admin
Admin
Posts: 9701
Joined: Sat Oct 29, 2005 6:20 am
Location: Israel

Remove 4GB limit in 32bit Windows (Vista/7)

#1 Post by dr_st » Tue Jan 11, 2011 1:29 pm

Apologies if this has been brought up before.

Several months ago I stumbled upon an article that finally explained fully and clearly everything there is to know about the 4GB physical memory limit in 32-bit versions of Windows.

Here is the full article:
http://www.geoffchappell.com/viewer.htm ... memory.htm

The summary:
32-bit editions of Windows Vista are limited to 4GB is not because of any 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.
(applies equally to Windows 7, and almost equally to XP since SP2).

The solution: An unofficial kernel patch. Geoff Chappell describes the patch in the article, but it is clear that the average user (and most above average users as well) will not feel comfortable hacking their kernel.

However, some people tend to feel more comfortable applying patches that someone else wrote for them. The article cited above basically invited software geeks to release such a patch, and someone did:
http://www.pallab.net/2009/12/30/enable ... s-vista-7/

The above contains download links to kernel patches that unlock the 4GB limit in 32bit versions of Windows Vista and Windows 7. Of course should be used at one's risk.

I thought this might be an interest to folks who for various reasons do not want to use a 64bit version of Windows.
Thinkpad 25 (20K7), T490 (20N3), Yoga 14 (20FY), T430s (IPS FHD + Classic Keyboard), X220 4291-4BG
X61 7673-V2V, T60 2007-QPG, T42 2373-F7G, X32 (IPS Screen), A31p w/ Ultrabay Numpad

craigmontHunter
Senior Member
Senior Member
Posts: 742
Joined: Wed Feb 18, 2009 10:25 pm
Location: Ottawa, Ontario, Canada

Re: Remove 4GB limit in 32bit Windows (Vista/7)

#2 Post by craigmontHunter » Tue Jan 11, 2011 2:12 pm

I would imagine that this patch just enables true PAE, and 36-bit adress length, which is what windows server 2003 uses to access more than 4gb ram. I could have seen this being usefull a couple of years ago, especially before vista came out, but nowadays I think that if you need more than 4gb of ram, 64 bit windows is the way to go. If you have 32-bit only software, the windows xp mode should work for you (or use a dualboot, in which case this could be usefull..)

I am lucky, I only need standard xp, so the 3gb of ram I have right now is more than eneough.
Elitebook 8440p, i5 520, 8gb, Samsung 840 SSD
Old/Not Working/Dead Laptops:
T61 7661CC2, 4gb, Windows 7 x64, 240gb intel SSD, 500gb Ultrabay drive
Toshiba Portege 7020ct
Thinkpad T41 23737FU
Dell Latitude LS

dr_st
Admin
Admin
Posts: 9701
Joined: Sat Oct 29, 2005 6:20 am
Location: Israel

Re: Remove 4GB limit in 32bit Windows (Vista/7)

#3 Post by dr_st » Tue Jan 11, 2011 3:00 pm

craigmontHunter wrote:I would imagine that this patch just enables true PAE, and 36-bit adress length, which is what windows server 2003 uses to access more than 4gb ram.
Well, sort of. The PAE is there (the patch is just to the PAE-enabled kernel, since non-PAE kernel really cannot see more than 4GB). The patch merely unlocks in regular Windows the restrictions that are already unlocked by default in the server versions.
Thinkpad 25 (20K7), T490 (20N3), Yoga 14 (20FY), T430s (IPS FHD + Classic Keyboard), X220 4291-4BG
X61 7673-V2V, T60 2007-QPG, T42 2373-F7G, X32 (IPS Screen), A31p w/ Ultrabay Numpad

robertcollier4
Posts: 7
Joined: Sat Nov 24, 2012 2:26 pm

Re: Remove 4GB limit in 32bit Windows (Vista/7)

#4 Post by robertcollier4 » Fri Jun 21, 2013 2:44 pm

I am going to try this soon. Here is the results of my preliminary research. The Win7 PAE kernel patch can be applied via manual instructions or via automatic tool.

Manual kernel patch instructions:
http://www.unawave.de/windows-7-tipps/3 ... ml?lang=EN
http://www.evga.com/forums/tm.aspx?m=960087&mpage=1

Automatic Tool:
http://www.raymond.cc/blog/make-windows ... gb-memory/
http://wj32.org/wp/2011/02/23/pae-patch ... ows-7-sp1/
http://devtunes.blogspot.in/2013/03/now ... -7-32.html
http://www.pallab.net/2009/12/30/enable ... s-vista-7/

But the problem with the Thinkpads is that the Win7 driver for Intel HD integrated graphics does not have support for a PAE-patched-kernel but the WinXP driver for Intel HD integrated graphics does have support for a PAE-patched kernel. This problem affects Intel HD models 2000 to 4000. As a fix many people have reported that if they use the WinXP Intel HD driver on Windows7 PAE-patched-kernel then it works (with the downside of not being able to use Aero).

The WinXP driver for Intel HD graphics (2000 to 4000) can be downloaded from:
https://downloadcenter.intel.com/Detail ... ldID=22643

Read the comments at the bottom of the following link, they share many people's experiences with this and instructions are provided in the first quoted post below on how to edit the INF of the Intel HD WinXP driver to trick it into saying it is compatible with Win7.
http://wj32.org/wp/2011/02/23/pae-patch ... ows-7-sp1/
Andy says:
May 7, 2013 at 4:32 am
I can’t believe it, but I got Win7 to work on a Intel HD 3000 graphics (i3 Sandy Bridge) with this PAE patch.

The solution was using an XP 32bit driver, which seemingly can do PAE. The only downside (?) is that it will NOT do Win7 Aero. But at least that’s better than the standard VGA driver, since it can do the full resolution of attached gig screens.

Here we go:

1) Patch Win7 for PAE

2) Boot Win7 in unpatched mode

3) Download the HD3000 Windows XP driver, I used this one: https://downloadcenter.intel.com/Detail ... ldID=22643

4) Unpack

5) Edit the INF file in folder \Graphics\igxp32.inf by copying the WinXP section to the Vista/Win7 section:

5a) before:

[IntelGfx.NTx86.6.0]
; no install on Vista/Win7

[IntelGfx.NTx86.6.2]
; no install on Win8

5b) after:

[IntelGfx.NTx86.6.0]
; no install on Vista/Win7
%iSNBGM1% = iSNBM0, PCI\VEN_8086&DEV_0106
%iSNBGD1% = iSNBD0, PCI\VEN_8086&DEV_0102
%iSNBGM2% = iSNBM0, PCI\VEN_8086&DEV_0116
%iSNBGD2% = iSNBD0, PCI\VEN_8086&DEV_0112
%iSNBGM2P% = iSNBM0, PCI\VEN_8086&DEV_0126
%iSNBGD2P% = iSNBD0, PCI\VEN_8086&DEV_0122
%iSNBGD3% = iSNBD0, PCI\VEN_8086&DEV_010A
%iIVBGD0% = iIVBD0, PCI\VEN_8086&DEV_0162
%iIVBGM0% = iIVBM0, PCI\VEN_8086&DEV_0166
%iIVBGD0SRV% = iIVBD0, PCI\VEN_8086&DEV_016A
%iIVBGD0GT1% = iIVBD0, PCI\VEN_8086&DEV_0152
%iIVBGM0GT1% = iIVBM0, PCI\VEN_8086&DEV_0156
%iIVBGD0SRVGT1% = iIVBD0, PCI\VEN_8086&DEV_015A

[IntelGfx.NTx86.6.2]
; no install on Win8

6) Install the patched driver by
Device Manager
-> Your Graphics Chip
-> Update Driver
-> Browse my computer…
-> Let me pick…
-> Have disk
-> Point it to the folder with the INF file

You might have to agree to install unsigned drivers

7) Change the Windows 7 theme to Windows 7 Basic

8) Restart and enjoy 4+ GB RAM with HD graphics
Marcos Jacoby says:
May 2, 2013 at 8:39 am
Well, I have dug deeply the internet and from what we have found the following problems:
Microsoft has put a restriction of 4 Gb memory on all 32-bit versions of their operating systems from Vista, except for the Server versions (2003, 2008 and 2012). The reason is not known and there are several assumptions and rumors.
Intel is a partner of Microsoft in many things and not offended things decided it will not fix the bug in their driver (HD 2000/3000 and 2500/4000) which gives a beautiful crash every time you use a PAE kernel versions in a 32-bit no Server Windows O. S.
And these crashes doesn’t happen with Nvidia and AMD/ATI drivers.
This is very clear because Intel has partnered with linux.org and is a partner in developing drivers for GNU / Linux systems that have 32-bit PAE kernel and there is no limitation in the intel graphic driver nor crashes.
I also read that a user who probably did an upgrade from Windows XP to Seven, did a rollback of a Intel HD Windows 7 driver to a XP driver version and has worked fine (Windows PAE kernel driver Intel HD XP).
Unfortunately if you try to install the XP driver ain the Windows Vista/7/8 the system informs that “the computer does not meet the requirements”.
Then the bullet hole is there. Based on the Intel driver for Windows XP, or modify it to be accepted by Windows Vista/7/8 or modify the Intel driver for Vista/7/8.
I believe even in not a bug, but a deliberate restriction.
And so is this link (http://communities.intel.com/thread/32085) Forum Intel can sit and wait that Intel will fix this pseudo “bug”.
Marcos Jacoby says:
May 2, 2013 at 8:45 am
And your mobo is?
VGA driver?
This issue affect’s only INtel HD (2000/3000 and 2500/4000).
I tell you because I’m use this patch in a netbook with 945 chipset and has no problem with the Intel Graphic driver.
Ottorino says:
January 3, 2012 at 5:04 pm
I also have tried to patch the Win7 32bit on a nvidia optimus system. I get the same problems as decribed above. Everything works fine with standard vga driver. After install the Intel HD Graphics driver the system hangs close before welcome screen.

Does anyone with lots of knowledge about memory sharing have an idea how to solve this Intel driver problem?
Pizzetta says:
January 3, 2012 at 9:18 pm
Same problem also for me on HP EliteBook 8460p with Intel HD graphic driver.
Installed this and other 4GB patch, but is always the same: BSOD after entered Seven password login account or the PC crash. If I execute the patched boot in safe mode than I don’t have problem.
I investigate that the root cause is due to Intel HD graphics driver. In fact I’ll uninstall the driver and execute the patch it works correctly but I have the VGA mode.
Any suggestion to fix this issue?
war10ck says:
February 9, 2012 at 11:13 pm
Windows 7 runs well with Intel Graphics driver for XP. You won’t get the AERO effects but the basic design. Still better than default VGA or blue screen.
arfer says:
August 16, 2012 at 4:29 pm
I can confirm that the Intel HD XP driver works fine on my Dell N5110 i7 8GB with Windows7 32bit, and I can use the full 8 gigs with the patch. But… the nVidia Geforce 525M with Optimus technology doesn’t work with this driver, so I am not able to use the nVidia card, just the HD graphics. Any suggestions? As a “workaround” I don’t use the patch, but I installed Gavotte Ramdisk which is able to use the memory above 4GB, and I put the pagefile there.
robin2001 says:
April 13, 2012 at 2:35 am
I installed the intel graphics hd driver for XP x86 in safe mode, rebooted and now…
Working on my Dell Latitude E5420 (Core i3, 8GB RAM now on 7 32bit )
http://downloadmirror.intel.com/20781/a ... _14469.zip

Thanks to war10ck for the recommendation. (as he said no aero effects, but no big deal here)
jcm says:
June 5, 2012 at 2:55 pm
I got this to work as well using the intel HD 3000 windows XP driver on windows 7. I downloaded the window 7 SDK for makecert and signed the patched ntkrnlpa.exe based on the german website instructions. Like everybody else I could boot in to safe mode but was just getting a black screen on boot (no windows logo ever).

We’ll see how we go but it looks like my dell vostro is kitted out with a new SSD and 8GB ram now. I like to run multiple virtual machines.
Fung says:
December 12, 2012 at 1:04 pm
I got it working on my OptiPlex 380 at office. Both Resource Monitor and System Info show that I have 8GB installed and usable.

Here are the screen dumps:
http://i50.tinypic.com/5cgcrb.png
http://i47.tinypic.com/33d81m0.jpg

I also had the Intel driver issue. As told by comments above, I have to install the XP version of driver (no Areo, no big deal for me). My situation is I then encountered BSOD after XP driver was installed. It was due to Windows was trying to install another driver for Win7. So with two drivers, I got BSOD. I simply disable the Win7 one, and viola!

@wj32 thank you so much for your work. I have no option for 64bit, but I have to run VMs for work. You saved my life.
exequos says:
May 20, 2013 at 2:37 am
it is working for me with some differences
instead of patch signature checking i use the signtool suggestion from this resource ( http://www.geoffchappell.com/viewer.htm ... memory.htm )
because my gigabyte z77n-wifi have intel hd4000 graphics i had to downgrade the drivers to modified inf file as suggested above.

Cigarguy
ThinkPadder
ThinkPadder
Posts: 1756
Joined: Thu Aug 09, 2012 3:08 pm
Location: Calgary, Alberta, Canada

Re: Remove 4GB limit in 32bit Windows (Vista/7)

#5 Post by Cigarguy » Fri Jun 21, 2013 4:12 pm

dr_st wrote: Microsoft just doesn’t license you to use that code.
I question this quote (by someone else not you dr_st) because if this were true, you'd suspect a lot of Linux 32 bit distros would natively and seamlessly use > 3 GB of RAM. Seems funny to me that Linux is fairly consistent with Windows in this regards.

dr_st
Admin
Admin
Posts: 9701
Joined: Sat Oct 29, 2005 6:20 am
Location: Israel

Re: Remove 4GB limit in 32bit Windows (Vista/7)

#6 Post by dr_st » Sat Jun 22, 2013 12:56 am

Cigarguy wrote:I question this quote (by someone else not you dr_st) because if this were true, you'd suspect a lot of Linux 32 bit distros would natively and seamlessly use > 3 GB of RAM.
They do. Linux supports PAE and many of its 32bit distros support >4GB of RAM. So do all 32bit versions of Windows server distributions.
Thinkpad 25 (20K7), T490 (20N3), Yoga 14 (20FY), T430s (IPS FHD + Classic Keyboard), X220 4291-4BG
X61 7673-V2V, T60 2007-QPG, T42 2373-F7G, X32 (IPS Screen), A31p w/ Ultrabay Numpad

robertcollier4
Posts: 7
Joined: Sat Nov 24, 2012 2:26 pm

Re: Remove 4GB limit in 32bit Windows (Vista/7)

#7 Post by robertcollier4 » Sat Jun 22, 2013 1:11 am

Microsoft artificially limits its kernel to 4GB in its non-server releases. Take a look at Memory Limits for Windows Server 2008: "Windows Server 2008 Standard" has a memory limit of 4GB, while "Windows Server 2008 Enterprise" has a memory limit of 64 GB. Both have the same kernel - one is just artificially patched to limit its memory. Hence the kernel patch for Win7 to remove the artificial limit -- proves that Win7 32-bit kernel already has native PAE support to support up to 64GB of memory.

Also, another reason why MS has put the 4GB limit supposedly on non-server editions is to "protect" consumers from video card manfuacturers who might write drivers that don't check for PAE. Video cards use MMIO (Memory mapped IO). The video card driver is supposed to check if PAE is enabled to decide the upper region of memory to map to. Some video cards directly map to the upper region of 4GB without checking to see if PAE is enabled. Thus for example if the video card has 512MB memory - it will take up the region of 3.5GB - 4.0GB. But a properly coded driver should check for PAE - and if PAE is enabled then it should map to the upper boundary of PAE, 63.5GB - 64GB. Almost all video card drivers seem to be fine and do this PAE detection properly except the Intel HD 2000-4000 driver for Win7 (but the Intel HD driver for WinXP does do this PAE detection correctly).

It is a shame that the Intel HD driver for Win7 doesn't properly check for PAE to correctly decide its MMIO address region. This has been reported and discussed on Intel forums:
http://communities.intel.com/thread/32085

It is up to Intel to make a change perhaps in a future release of the driver to correctly detect PAE. Otherwise perhaps we could also try to use the Intel HD driver from WinServer2008 or WinServer2012 on Win7 - don't know if anyone has tried this?

A31
Senior Member
Senior Member
Posts: 852
Joined: Mon Dec 21, 2009 11:33 am
Location: Norwich, UK

Re: Remove 4GB limit in 32bit Windows (Vista/7)

#8 Post by A31 » Sun Jun 23, 2013 9:10 am

craigmontHunter wrote:I would imagine that this patch just enables true PAE, and 36-bit adress length, which is what windows server 2003 uses to access more than 4gb ram. I could have seen this being usefull a couple of years ago, especially before vista came out, but nowadays I think that if you need more than 4gb of ram, 64 bit windows is the way to go. If you have 32-bit only software, the windows xp mode should work for you (or use a dualboot, in which case this could be usefull..)
32-bit software works perfectly on 64-bit Windows anyway. The vast majority of the software I have on my PC is 32-bit and functions perfectly under 64-bit Windows (8). Only a few things are 64-bit on my PC: Office 2013, some bits of Adobe CS5.5, Photomatix Pro and that's about it. Rest is 32-bit.
Lenovo ThinkPad T440s Touch | Core i7 4600U | 12GB 1600MHz RAM | 1080p IPS Touch Display | Samsung 850 EVO 500GB | 720p Webcam | 68+ 6 Cell Battery | Windows 10 Pro x64

Past: Lenovo ThinkPad L540 | IBM ThinkPad A31, R40

Post Reply
  • Similar Topics
    Replies
    Views
    Last post

Return to “Windows OS (Versions prior to Windows 7)”

Who is online

Users browsing this forum: No registered users and 7 guests