从过去的读数看来似乎大多数 32位驱动程序将无法在64位上工作。为什么32位驱动程序不能在64位上工作
在纯粹的概念层面上,我发现64位机器在使用32位驱动程序时有额外的“空间”,因此我试图确定为什么他们最经常会使用而不是。 (我从用户空间来)
我已阅读this维基文章X86-64其中规定
push和pop堆栈上总是在8字节的进步,和指针8个字节宽。
我可以看到这可能是一个32位驱动程序可能在64位上失败的原因,因为它发出一个pop(),其中弹出的数据是驱动程序预期的两倍。
我刚刚提到的可能完全不符合标准,因为我是一个用户空间的人,在这种情况下,或者其他方式,什么是一些实际的例子(代码或外行人的解释)为什么32位驱动程序在运行时失败在64位?
,所以驱动程序可能会要求一些内存分配,操作系统将返回一个地址,它(驱动程序)无法解决/指向? – wal 2011-06-10 14:52:36
@wal。是的,但更简单的事情出错了,如上所述。 – Roddy 2011-06-10 14:57:51