我们介绍完了简易的修改方法后,我们接着继续介绍稍微繁琐的修改方法。鉴于第一种方法成功率不是特别的高,所以我们有必要介绍下面的方法。
内存总数
请注意Installed memory中的“3.25GB usable”和任务管理器中Total总数
首先给大家放出的是一张Windows 7的截图。从图中我们可以看出虽然安装了8GB内存,但系统仅认出了其中的3.25GB。
进入C:\Windows\System32目录,找到ntkrnlp.exe这个文件复制到桌面,用UltraEdit或WinHex等16进制编辑软件打开。首先搜索字符串“7c (xx) 8b 45 fc 85 c0 74 (yy)”,应该能找到两个。把这两个地方都改成“7c (xx) b8 00 00 02 00 90 90”,再将修改以后的ntkrnlp.exe重命名为mykernel.exe,并放回源路径。再把文末压缩包中的文件全部放入C:\Windows\System32目录中。
放入System32目录
把压缩包中的文件复制到System32目录下
压缩包内容
下一步,使用Visual Studio
Tools里面的editbin.exe来修改mykernel.exe的Checksum。命令行如下:
editbin /release
mykernel.exe
第三步,请安装一个Windows SDK,在SDK的命令行里运行下面两个命令:
makecert -r -ss my -n
"my test ca"
signtool sign -s my -n "my test ca"
mykernel.exe
在运行第一个命令的时候,如果出现capicom.dll文件无法找到,请点:capicom.dll下载
第四步,在Windows命令提示符中创建一个新的boot记录,使用修改过的kernel。命令如下:
bcdedit
/copy {current} /d "Windows 7 with PAE"
bcdedit /set {id} pae
ForceEnable
bcdedit /set {id} kernel mykernel.exe
bcdedit /set {id}
testsigning on
最后,重新启动计算机,在启动菜单中选择“Windows 7 with
PAE”,我们就可以看到系统完美支持8GB内存了。
任务管理器
完美显示8GB内存
EVERST 完美显示8GB内存
事实上,对于在32位和64位操作系统之间进行选择的问题,其关键的问题还是在于兼容性。很多在32位系统中运行正常的程序,在64位系统下却会出现各种莫名其妙的问题。因此让32位操作系统支持4GB以上大内存的做法也有它存在的意义。但需要注意的是,由于32位操作系统的内存寻址限制,单线程所能使用的内存容量最大仍为3GB,但这并不意味着其它线程无法使用超过那3GB以外的其它内存。
(本文转载自IT168本友会,作者网友【小海豚】)