在最早的Windows XP RTM/SP1中,系统完全支持PAE及4GB以上内存。但是在SP2时,微软更新了hal.dll这个文件,在这个文件内对可用内存大小作出了强制性阉割(原因是很多厂商的驱动对于PAE支持有问题【确切地说,是对DMA双缓冲的支持不规范】,而硬件厂商却不愿解决这个问题而把这个问题踢给微软,而微软也没有承认这个问题,让硬件厂商更新驱动。就干脆采取了这种简单粗暴的办法,强制驱动程序只能访问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。所以微软现在限制内存大小就根本不是因为兼容性了,而是一种纯粹的商业伎俩。