|
发表于 2019-12-4 20:39:46
|
显示全部楼层
在最早的Windows XP RTM/SP1中,系统完全支持PAE及4GB以上内存。但是在SP2时,微软更新了hal.dll这个文件,在这个文件内对可用内存大小作出了强制性阉割(原因是很多厂商的驱动对于PAE支持有问题,而硬件厂商却不愿解决这个问题而把这个问题踢给微软,而微软也没有承认这个问题,让硬件厂商更新驱动。就干脆采取了这种简单粗暴的办法,强制驱动程序只能访问4GB以下内存,相当于人为造一个bug),所以这就是一些驱动导致蓝屏的原因。SP2及以后的Windows XP相当于系统内部支持4GB以上内存的功能性代码并不完整(微软造成的)。一方面是重写的hal,一方面是第三方厂商驱动的实现规范参差不齐。
Windows Vista及其以后的Windows操作系统包含有支持PAE运作的完整代码,只是在许可证中人为限制了可用内存大小。其实在Windows Vista以后,不兼容PAE的驱动越来越少(微软也开放了DDK的新API),特别是Windows 8及以后的Windows内核ntoskrnl支持PAE(Windows 8及以后的Windows只有PAE内核),其安装要求也明确说明CPU必须支持PAE,从而所有的驱动必须支持PAE。所以微软现在限制内存大小就根本不是因为兼容性了,而是一种纯粹的商业伎俩。 |
|