tomasz86 Posted July 25, 2013 Posted July 25, 2013 EwwwwwwwwwwwThats a real nasty and error prone solution...Agree (with XP) but what about Win7 and Vista??? Its a patch and gets the job done I know it's an old thread but I somewhat disagree with Kelsenellenelvian's opinion. The solution is exactly the same in case of both XP and Vista/7. You just remove the artificial limitation imposed by M$ about how much RAM the system is able to use with PAE enabled. I don't see anything nasty in it You can know that it's 100% artificial just by looking at Windows 2000 kernel files which are exactly the same in case of all different editions. The only difference is in the registry - when it's set to Professional you can use only 4GB of RAM, when it's set to Advanced Server you can use 8GB, and when it's set to Datacenter Server then you can use 32GB. There's no difference in the system files themselves. In case of Windows 2000 the situation is similar when it comes to how many CPUs / cores the system will use as the number differs according to the Windows 2000 edition you're using. blackwingcat has removed those limitations in his patches, and that's why you can use more RAM and utilise more CPUs / cores with his kernel installed.I'm experimenting with XP at the moment and you can remove the max amount of RAM limitation by editing the kernel files. There's a problem though that the system default USB driver doesn't work after doing that. However, there's a way to work around it. 3rd party USB drivers do work which means that you can still use USB 3.0 so (as long as your PC has USB 3.0 ports) you can just use it for all USB devices and leave USB1.1/2.0 ports unused.For 64Bit users, its best you remain there and new users should be encouraged for X64 anyways X64 may be "the future", trendy, jazzy, etc. but the real problem is that a lot of older hardware simply don't work in 64-bit systems due to lack of proper drivers. I'm definitely not going to throw away a perfectly working printer and scanner simply because they're not supported by the new OS
MagicAndre1981 Posted July 25, 2013 Posted July 25, 2013 there is a betetr way. Use this tool which uses a patched bootloader: http://www.saferbytes.it/2013/02/28/saferbytes-x86-memory-bootkit-new-updated-build-is-out/
dencorso Posted July 26, 2013 Posted July 26, 2013 @MagicAndre1981: Great find! For the record, for XP, there's a further problem because MS's crippled the hal, starting from SP2. So, for a patch to be useful, someone'd have to backport to the SP3 hal what has been removed from SP1. The main reference for this is daNIL (Galimov): read his replies to this blog entry, starting in 2009.Until this is solved, PAE aware ramdisks are the most reliable solution, IMO.
tomasz86 Posted July 26, 2013 Posted July 26, 2013 (edited) I've read the blog. You can use more RAM just by patching the kernel file. I don't know whether the older HAL fixes the USB driver problem because in my case it just doesn't work. Trying to use HAL from SP1a causes infinite reboot loop. Ramdisks have different use I like to split the RAM so that I can have 5GB for the OS and 3GB for a ramdisk. That's what I did in Windows 2000 and I'm trying to do now in XP. And yes, there are situations where running several programs at once or just one multi-threaded application can use all of the available 5GB RAM. Edited July 26, 2013 by tomasz86
dencorso Posted July 26, 2013 Posted July 26, 2013 I know you know what you do. But so does daNIL. He was the one who 1st decided to provide the > 4 GiB address patch for XP.He gave up because of the problems with HAL.DLL. So that's definitive for me, and the issue with USB may be just the tip of the proverbial iceberg.So, with all due respect, forgive me for asking but, are you *sure* you used the right HAL from SP1? Remember there are actually at least 5 varieties of hal for XP, and the one selected gets renamed (actually copied to) HAL.DLL. Now, while the file name changes to hal.dll, the original filename in the properties tab remains untouched, so that, by looking at it you may find the original name of hal.dll. The definitive reference on the main builds of hall.dll is this, of course, but it does not cover the security updates and hotfixes. What you describe makes me think you picked the wrong hall.dll to start with. Of course, I may be wrong. But there's no harm in double checking, so please do it.
tomasz86 Posted July 26, 2013 Posted July 26, 2013 (edited) It seems to me that by the so called HAL problems he means exactly the USB driver issue, i.e. that with HAL from SP1 the USB driver worked: you need to extract halmacpi.dll from XP SP1 distributive to system32 folder, and modify/add the boot.ini menu to include it like this multi(0)disk(0)rdisk(0)partition(1)\WINNT=Windows XP Professional patched halsp1″ /pae /fastdetect /kernel=ntkrnlp2.exe /hal=halmacpi.dll Not sure which hal.dll youre using, but it works ok on my pc, usb drives and DMA are working. It seems that it was someone from China to mention the patch for the first time. At least here is the oldest entry from Google about it: http://www.unpack.cn/thread-27735-1-1.html As for the HAL itself, here is a good M$ article about it: How to Troubleshoot Windows 2000 Hardware Abstraction Layer Issues 386 source file: i386\driver.cab\halmacpi.dll Computer type: ACPI Multiprocessor PC i386 source file: i386\driver.cab\halaacpi.dll Computer type: ACPI Uniprocessor PC i386 source file: i386\driver.cab\halacpi.dll Computer type: Advanced Configuration and Power Interface (ACPI) PC i386 source file: *i386\driver.cab\halsp.dll Computer type: Compaq SystemPro Multiprocessor or 100% Compatible i386 source file: *i386\driver.cab\halapic.dll Computer type: MPS Uniprocessor PC i386 source file: *i386\driver.cab\halmps.dll Computer type: MPS Multiprocessor PC i386 source file: *i386\driver.cab\hal.dll Computer type: Standard PC i386 source file: *i386\driver.cab\halborg.dll Computer type: SGI mp Copy to this folder: winnt\System32 Rename to this file name: hal.dll I'm sure I tried to use the correct one which is halmacpi.dll (ACPI Multiprocessor PC) in my case. Of course I'm going to do more trials in the future. At the moment I don't see any other issues except for the USB driver problem. I used PAE in Windows 2000 for a few years so I know more or less what to expect. Still more time is needed to check for everything. Edited July 26, 2013 by tomasz86
dencorso Posted July 27, 2013 Posted July 27, 2013 This may be relevant:@TELVM: Many thanks to you for pointing into the right direction with the link! Much appreciated!!!I tested it on XP SP3 with the hal.dll from XP SP1 and it worked. Be careful I have not done a lot of tests, but connecting a USB stick worked.Be advised that the link patches another location very near my patching location. But in my opinion the patch from the link only enables up to 16 GB RAM instead of mine which should enable 64 GB RAM.For XP SP3 we patch the following offset in ntkrpamp.exe which enables all available RAM up to 64 GB:- WinDbg "bp nt!MiPagesInLoaderBlock+0x5d" frome0d73851 751b jne nt!MiPagesInLoaderBlock+0x7a (e0d7386e)toe0d73851 90 nope0d73852 90 nop- IDA fromINIT:005D0851 jnz short loc_5D086EtoINIT:005D0851 nopINIT:005D0852 nop- hex editor offset 0x1B2A51 from75 1Bto90 90After ntkrpamp.exe is changed we have to do the following to replace the original kernel file:- correct the checksum of ntkrpamp.exe with LordPE- add /PAE switch to boot.iniDo not omit this step otherwise we can not address the full RAM! This is necessary, becausewe will use hal.dll from XP SP1.- replace the original kernel file by the patched one:- rename the file "C:\Windows\Driver Cache\i386\driver.cab" to "driver.cab_"- rename the file "C:\Windows\Driver Cache\i386\sp3.cab" to "sp3.cab_"- rename the file "C:\Windows\system32\ntkrnlpa.exe" to "ntkrnlpa.exe_"- cancel the "Windows File Protection" message box and choose "Yes"- copy the patched file ntkrpamp.exe to "C:\Windows\system32\ntkrnlpa.exe"- cancel the "Windows File Protection" message box and choose "Yes"- rename the file "C:\Windows\system32\hal.dll" to "hal.dll_"- copy hal.dll from XP SP1 (internal file name halmacpi.dll) to "C:\Windows\system32\hal.dll"- do not forget to add the boot.ini switch /PAE, otherwise we can not address the full RAM,because we use hal.dll from XP SP1- rebootAgain many thanks to TELVM for clearing things up!Reference: Windows XP Ram Limit posts #17 and 22 to the end.Obs: 0x1B2A51 for 5.1.2600.5512 becomes 0x1B3A51 for 5.1.2600.6387...
tomasz86 Posted July 28, 2013 Posted July 28, 2013 (edited) Thanks, dencorso It's very useful finding. I haven't done any more tests yet so can't tell more about the details so far, but:But in my opinion the patch from the link only enables up to 16 GB RAM instead of mine which should enable 64 GB RAM.This is because in the other patch ntkrnlpa.exe is hex edited like this:1. Look for C:\WINDOWS\SYSTEM32\NTKRNLPA.EXEOriginal : BB 00 00 10 00 33 FF 6A 07 8B F0Modify To : BB 00 00 40 00 33 FF 6A 07 8B F0(1000 is the Hex of 4096)(4000 is the Hex of 16384)If you set it to 4000 then it's no surprise that the maximum amount of RAM gets set to 16GB. You could probably experiment with other values. I've got only 8GB of RAM here so can't test anything more than this myself. Edited July 28, 2013 by tomasz86
Browncoat Posted September 1, 2013 Posted September 1, 2013 Interesting thread, I made the jump to W7Ux32 on my birthday(legacy h/w,no 64 bit drivers) and if Resource Monitor is to be believed,the upper gig of my new 4GiB build is being used by BIOS and hardware I'm happy with that and have enough faith in the constructionof the ADATA 60GiB SSD not to worry about it.Am I living in a fools paradise?
98SE Posted June 2, 2017 Posted June 2, 2017 (edited) On 7/26/2013 at 6:58 AM, dencorso said: @MagicAndre1981: Great find! For the record, for XP, there's a further problem because MS's crippled the hal, starting from SP2. So, for a patch to be useful, someone'd have to backport to the SP3 hal what has been removed from SP1. The main reference for this is daNIL (Galimov): read his replies to this blog entry, starting in 2009. Until this is solved, PAE aware ramdisks are the most reliable solution, IMO. Is the XP SP1 still the preferred hal to patch for > 4GB memory? Are the Chinese and all other versions based on the SP1 Hal or are they based off of W2K3 Sever? That Gavotte Ramdisk you are using is this one PAE aware based? On 7/28/2013 at 5:44 PM, tomasz86 said: Thanks, dencorso It's very useful finding. I haven't done any more tests yet so can't tell more about the details so far, but: This is because in the other patch ntkrnlpa.exe is hex edited like this: If you set it to 4000 then it's no surprise that the maximum amount of RAM gets set to 16GB. You could probably experiment with other values. I've got only 8GB of RAM here so can't test anything more than this myself. What happens if you have 32GB and you set the hal maximum to 16GB, is the remaining 16GB still accessible for PAE Ramdisk use? Edited June 3, 2017 by Tommy Removed Double Post
jaclaz Posted June 2, 2017 Posted June 2, 2017 @98SE You seemingly missed the base point . XP SP1 can access the memory just fine (without any patch). The limitation is an artificial one introduced in XP SP2 (in theory to prevent badly written drivers to crash the system). Some more info (and working links to Geoff Chapell's page on Vista that touches anyway the XP topic ) here: http://reboot.pro/topic/19933-accessing-3gb-to-8gb-ram-in-winxp-32-bit/ jaclaz
98SE Posted June 2, 2017 Posted June 2, 2017 (edited) On 7/26/2013 at 9:03 AM, tomasz86 said: It seems to me that by the so called HAL problems he means exactly the USB driver issue, i.e. that with HAL from SP1 the USB driver worked: It seems that it was someone from China to mention the patch for the first time. At least here is the oldest entry from Google about it: http://www.unpack.cn/thread-27735-1-1.html As for the HAL itself, here is a good M$ article about it: How to Troubleshoot Windows 2000 Hardware Abstraction Layer Issues I'm sure I tried to use the correct one which is halmacpi.dll (ACPI Multiprocessor PC) in my case. Of course I'm going to do more trials in the future. At the moment I don't see any other issues except for the USB driver problem. I used PAE in Windows 2000 for a few years so I know more or less what to expect. Still more time is needed to check for everything. So was the original first > 4GB memory patch for XP from China or was there one prior to that? Has there been full documentation of what was changed and explained what was done in detail? On 7/25/2013 at 3:48 AM, tomasz86 said: I'm experimenting with XP at the moment and you can remove the max amount of RAM limitation by editing the kernel files. There's a problem though that the system default USB driver doesn't work after doing that. However, there's a way to work around it. 3rd party USB drivers do work which means that you can still use USB 3.0 so (as long as your PC has USB 3.0 ports) you can just use it for all USB devices and leave USB1.1/2.0 ports unused. Is the RAM limitation still confined to 4GB for programs usage? So only >4GB is Ramdrive use only? Are you talking about USB 3.0 on board or add in PCIe card? On Z170 this would not be a huge issue as there are no more real USB 2.0 ports. Edited June 3, 2017 by Tommy Removed double post
Dibya Posted June 3, 2017 Posted June 3, 2017 On 7/26/2013 at 4:26 AM, tomasz86 said: I've read the blog. You can use more RAM just by patching the kernel file. I don't know whether the older HAL fixes the USB driver problem because in my case it just doesn't work. Trying to use HAL from SP1a causes infinite reboot loop. Ramdisks have different use I like to split the RAM so that I can have 5GB for the OS and 3GB for a ramdisk. That's what I did in Windows 2000 and I'm trying to do now in XP. And yes, there are situations where running several programs at once or just one multi-threaded application can use all of the available 5GB RAM. Sp1 hal works fine for me ................
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now