主要是在进行DMA操作的时候需要,另外能保证物理地址低15位为0吗?

解决方案 »

  1.   

    获得其物理地址?不知道你是做驱动还是做应用的,
    反正应用应该是不太可能,如果可以访问物理地址,Windows就很容易死掉了,
      

  2.   

    驱动中可以访问物理内存的!但是你说的要分配连续的内存,我不知道怎么弄?难道你不是调用Windows的函数去分配的吗?Windows已经在帮你管理内存了,不像以前在8086的时代,什么都要自己管。个人理解,我们所用的内存条只是我们所说的physical memory space的一个子集!像4G的最顶端就是BIOS数据!这个肯定是在BIOS ROM中的。所以这个ROM也是属于这个如果只是想把virtual memory的address转换成physical memory address,好像驱动中有类似的函数可以做。当然你也可以自己转换,这个就需要你了解CPU的architecture,可以refer to Intel的IA-32.
    现在的章节应该有变更了,是volume 3,第三章开始,讲的是memory的管理,包括paging,protection什么的!