您可能想知道为什么VirtualAlloc在64K边界分配内存,即使页面粒度为4K. 你有Alpha AXP处理器,感谢你. 在Alpha AXP上,没有“加载32位整数”指令.要加载32位整数,实际上要加载两个16位整数并将它们组合起来. 因此,如果分配粒度小于64K,则重新定位在内存中的DLL 将需要每个可重定位地址两个修正:一个到高16位,一个到低16位.如果这改变了两半之间的进位或借位,事情会变得更糟.(例如,来自0x1234F000移动地址4K到0x12350000,这迫使这两个地址的…