About Terminal Server, Citrix, Delphi and other stuff
23 Jun
As you may know the 32 bit, also called x86, editions of Windows Vista cannot address more than 4 GB of memory. You may think this 4 GB is a limit of the processor but this isn’t true; using Physical Address Extension (PAE) it’s possible to address more memory
Enterprise Server versions of Windows (2003 and 2008) can already address more than 4 GB of memory so why can we not do that with Vista? The answer is: Microsoft doesn’t want that! It is all just a licensing matter, we can see this in the registry. Take RegEdit and goto HKLM\CurrentControlSet\Control\ProductOptions and doubleclick the Value ProductPolicy, scroll down a little until you see the value “Kernel-PhysicalMemoryAllowedx86″, next to it is the value 01 00 which corresponds to 4096 (1000 is the Hex of 4096):
We can also see where this (and other licensing values) come from: if we look in %systemroot%\system32\licensing\ppdlic al license values are in XML files. The memory value is in Kernel-ppdlic.xrm-ms:
We cannot make alterations to the registry values or to this xml file; the registry values are rebuild on every reboot and the xml file is protected with a signature
Unlike other licensing values (like activation) which are checked through slc.dll this particular value is checked and enforced in the Kernel. I though that patching the kernel was not possible due to Vista’s integrity checks. But then I read Geoff Chappell’s article about Vista’s Memory Limit. Geoff describes in detail how and where the check is done and even shows us what to patch.
I followed Geoff’s description and patched my kernel (carefully read Geoff’s instruction about checksum, signing and so on!) and I can confirm that his patch works perfectly!
I also noticed something else: my Dell Laptop has 4 GB of memory of which I was only able to use about 3,5 GB. This is due to a portion of the address space that is allocated to my video card (address space, not memory!). We can see with Alex Ionescu’s MemInfo tool there’s a gap between 9F0000 and 100000:
We can also see in TaskManager that only 3581 MB is available:
Let’s see what that looks like after the patch:
We gained the missing memory
TaskManager confirms that:
If you would like to patch your kernel you can download the dUP2 file below. Please check if creating and/or using this patch is legal according to your country’s laws and your license agreement and of course carefully read Geoff’s instructions.
The patch was tested on both SP1 and SP2.
Vista NT Kernel Patch (4028)
58 Responses for "Patch Vista’s Kernel to Address more than 4 GB of Memory"
Does this work on windows 7?
I didn’t test it on Windows 7 but it’s likely to work if the bytes match (if dUP2 accepts the 7 kernel because the byte pattern is found then you should try it).
sounds interesting, although i never had vista installed for more than a day. but maybe for Windows 7 this could prove useful =)
found a little typo:
“next to it is the value 01 00 which corresponds to 4096 (1000 is the Hex of 4096):” 01 00 10 00
lector
@lector: actually the value is a DWORD so (as Geoff also pointed out) the value includes the 00 before and the 00 after the marked area.
The same rule could be applied on WinXP? (for override the 4GB memory limit)
No, Windows XP requires a separate patch which will be released soon.
That sounds great. I will expect your xp release. Thanks.
Why not using 64 bits edition of Vista directly? I’m having Vista x64 edition installed on my laptop and I can see 4Gigs of RAM direcly without patching.
My 32 bits applications are working too (like Office 2007, or VMware Workstation etc….)
Cheers
Vladan
Vladan,
Using x64 versions restricts you to use only singed drivers, and can have some compatibility issues with native or low/level x86 application. But, in general, using x64 versions is of course a preferrable choice.
hi, i have for some time been watching with bated breath…lol..
When the is a patch for xp pro to read more than 3.5 gb memory..would you please either send it or post a download link..
regards and best wishes in anticapation..
XP Patch please.
yes, please help on XP. I want to fully make use my 4GB memory. Thanks again.
[...] Originally Posted by drew and not u There are patches to make 32 bit vista use more than 4GB. You’re right about that. It’s not something I’d really recommend toying with unless you’re ready to face the possible consequences AKA OS re-install. Either way, you can read this: Patch Vista’s Kernel to Address more than 4 GB of Memory | RemkoWeijnen.nl [...]
x64 requires signed drivers yes, but there is an easy workaround. Works on Vista & 7 –> http://www.citadelindustries.net/readydriverplus/
Automated Disable Driver Signings on boot up.
But this x86 patch is very very nice. Thank you much for the information.
WINDOWS XP PATCH PLEASE!
Great! I was talking to Geoff and I am interested in modifying my kernel, and Geoff referred me to your website. *and yes, some people don’t understand the why PAE “does not work”. It’s not just about adding /force PAE or something. Ü
[...] (32bit supports more RAM than Desktop) that you can get Vista to address more than 4GB of RAM. http://www.remkoweijnen.nl/blog/2009…-gb-of-memory/ No need to replace any files. The patch does it all for [...]
Is the XP patch going to be available soon?
Please can we have it? Thanks!
the patch doesn’t work with Vista Ultimate sp2 ntkrnlpa version 6.0.6002.18005
A Russian origin patch enabling 4Gb usable on Windows 7 x86. Just press “Разблокировать” button, and then Yes, and will proceed automatic restart. If you don’t like the patch, you can uninstall it (or edit) by viziting menu START > MSCONFIG > and then booting options. Or via EasyBCD. The pacth just adds an alternative boot option with modified kernel supporting full 4Gb RAM support with PAE enabled. See what is PAE in the archive.
P.S. No viruses inside, you can check by any antivirus software.
Uploaded here for maximum spread:
http://www.kiloupload.com/file/2a3ae72e3cacdf4d397ad92a249bd367/4GB7600RTM8604082009.7z
[...] to Remko, he has provided us with a dUP2 file for the patch according to Geoff Chappell’s article [...]
my memmory is 4GB RAM. bad it my PC read it only 3000+ MB. Can you help totally read all 4GB in my laptop. I’m using Windows Vista SP1
Just question.
Did anybody tried to allocate even “recovered” memory?
And had anybody tried writting into that address range allocated to video drivers? And had it any effect?
One note,this is not licensing.(That’s mostly for x64-limited eds) But x86 cannot address more then 4GB.
The only partiall extension is through AWE and PAE.
To use AWE a programm has to be written for it and PAE requires activeted flag in executable image.
This sounds as not good idea at all…
Absolutely not recommended for anybody!
[...] لطف وبلاگ REMKO اخیرا یک پچ بسیار مفید برای ویندوز ویستا ساخته شده است [...]
Hi Klimax,
You’ll be able to get 4GB (or even more – you can use up to 64 GB in x86) of usable memory ONLY if your motherboard supports memory remapping feature. “x86 cannot address more then 4GB.” – this is completely wrong. As i remember, from Pentium or maybe Pentium pro processor can address up to 2^36 = 64 GB of physical memory in PAE mode, so the only thing which is needed – is OS support. Windows 2000 (server version) can support more than 4 Gb of physical memory (http://www.microsoft.com/whdc/system/platform/server/PAE/PAEmem.mspx)
– and Windows 2000 Professional cannot. Why? The only difference is in licensing. If you patch Windows 2000 kernel, it will allow you to use all of your physical memory.
Also please note that all processes are using virtual memory, not physical. Yes, even if you have got 8 GB of physical memory installed, EACH process can still access only 2 GB of virtual memory (or 3 if you boot with /3GB switch). But you can run 4 processes and each of them will be able to access 2 GB of virtual memory, giving you utilization of 8 Gb of physical memory.
In case you’re still doubting, you can boot your windows with /nolowmem parameter (http://msdn.microsoft.com/en-us/library/ms791499.aspx), which restricts windows from using the lower 4GB of physical memory and test your system. However, at least, in Windows XP/2003, you must have 5 GB or more (or patch kernel
) to successfully execute this switch.
Is there a reason why we shouldnt use 64bit? As far as i have read, it doesnt have the xp64bit-like compatibility issues…
Hi, does this work on vista with no service pack installed?
[...] to Remko, he has provided us with a dUP2 file for the patch according to Geoff Chappell’s article about [...]
Paren,
There is almost no reason; however, drivers’ support for x64 is much lower than for for x86, some low-level applications will not work, so if you have old hard and/or software, you should test all of your needed apps and hardware to work correctly with x64 OS before moving.
[...] Here and here you have not only info but actual steps to perform by yourself this hack (or directly a kernel patch). [...]
[...] per rimuovere il limite del kernel di indirizzare più di 4gb nei sistemi Windows 32bit qui per Vista e qui per Windows [...]
[...] disponibili 2 patch che modificano il kernel per far leggere a Windows dai 4gb di ram in su: qui per Windows Vista e qui per il nuovo Windows 7 [...]
[...] to Remko, he has provided us with a dUP2 file for the patch according to Geoff Chappell’s article about [...]
Thanks Remko, it took me some time to fully understand what needs to be done and I read yours and Geoff Chappell’s article several times. One must really point out that a copy of the file is needed and the safest way is to create a new bcd profile via bcdedit. I will test it for some time and I might even consider adding more memory, so I can run a virtal machine without a fear of performance issues
Geoff and Remko, nice work.
[...] gibt Nichts was es nicht gibt. Den manipulierten Quellcode kann man auch selbst nachvollziehen: Patch Vista’s Kernel to Address more than 4 GB of Memory | RemkoWeijnen.nl mfg [...]
Hi Remko, please kindly make the winxp sp3 patch. Thank you~
When I launch your patch on windows vista 32bit sp2, it states the “ntkrnlpa.exe” is in use and refuses to patch it. I have administrator privileges, what can I do?
Thank you in advance.
Exactly the same of nico here.
Please help us.
@Nico: You can never patch a file that’s in use (and the Kernel is really in use
so you need to make a copy of the kernel, patch it and make a seperate entry in your boot configuration as per Geoff’s instructions.
Remko,
how exactly do you make a seperate entry in your boot configuration?
Geoff’s instructions might be great but they are very long
Hello! is it possible to have the istruction in italian?
I need to understand the way to create a second o.s that can be changed by the patch..because if i do’nt do it the patch does’nt work…..
Thank for eventually answars!=)
Bye
Hi Remko,
Are you still working on a XP patch? If so can you please let us know the progress.
Thanks a lot in advance.
I would be very interested in an XP patch as well!
Thanks!
I dont know where to look for the instructions by geoff explaining the separate boot entryies. If i slaved the drive that has the ntkrnlpa.exe and patched it from a separate machine would that work… scuse the grammar… rough day.
Hi!
is it possible to have an italian version of the geoff’s tutorial…?
Thanks bye
[...] want to switch to a 64-bit? Well heres an easy solution: For Windows Vista: Patch made by Remko [...]
Not my own work, found from another forum, for XP SP3 but cannot use any USB devices (you have to use PS2 mouse/keyboard):
1. Look for C:\WINDOWS\SYSTEM32\NTKRNLPA.EXE
Original : BB 00 00 10 00 33 FF 6A 07 8B F0
Modify To : BB 00 00 40 00 33 FF 6A 07 8B F0
2. Save the modified kernel as mykernel.exe, put it under C:\WINDOWS\SYSTEM32\
3. Open C:\BOOT.INI
Copy and paste your original boot option, but add /PAE /KERNEL=mykernel.exe
example:
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS=”Microsoft Windows XP SP3 OVER 4G”
/fastdetect /usepmtimer /NoExecute=OptOut /PAE /KERNEL=mykernel.exe
4. Reboot, choose “Microsoft Windows XP SP3 OVER 4G” from the boot menu
Hi Remko!
i hope tath the patch willl be released soon because i don’t wont use vista…
However i really tanks you for great work that you are doing.
Bye
Tziu
(the patch for xp)=)
How soon is soon for the XP SP3 patch? Please tell how much donation we need to make but we’d really like the XP kernel patch.
[...] 7 starter edition Hack your Windows Vista 32 bits to address 4GB or more of RAM – Kartones Blog Patch Vista’s Kernel to Address more than 4 GB of Memory | RemkoWeijnen.nl So in theory and to conclude – if you wanted to go with 4 gb with windows 7 starter am sure it [...]
After 1 month… still no kernel patch for XP SP3?
To those who are asking for an XP patch: Unfortunately the way the HAL was changed in XP SP2 would make a simple XP patch impossible. Read the section “Windows XP SP2″ of Geoff Chappell’s article.
[...] [...]
[...] site එකක්. Translated link Original link Vista භාවිතා කරන අයට මෙතන තියනවා විස්තරේ වැඩිදුර කියවීමට [...]
Does any one have a clear instructions for me how I can make Windows 7 (Ultimate 64 bit) to see and make use of the 16 GB instead of the 3 GB
regards
Hans
WHAT DO I DO WITH THE FILE?????????????
windows 7 whit the patch
http%3A%2F%2Fi31.tinypic.com%2Fbhjc5.jpg
Leave a reply