[这个贴子最后由lstart在 2003/07/26 05:07am 第 1 次编辑]
对于第二个问题:应该崩溃,,除非你的运气太好太好了;
对于第三个问题:dma地址是由驱动程序调用系统内核API分配的,,,
虽然win2000物理内存以4k分页,,,但,,,,
驱动程序开发者无法控制分配的地址...
就是说他不得不接受分配的地址为0x56783210;
说白了就是任何人都无法决定分配的地址后面有多少0
对于第一个问题:
我是因为这个问题和项目经理吵了一架,,然后愤愤离开公司的...
1,malloc是应用层的调用,,,它只能基于操作系统分配虚拟内存...
真正物理地址内存的分配是在内核级进行的,,,就是驱动.....
只有物理地址才能DMA,malloc分配的显然不行....
2,那么malloc后,,,由系统重新定位物理地址呢????
这和驱动程序和win2000机制有关,,,,
刚才打了很多,,讲的很详细,,,可是不小心点了"清除"键,,,,郁闷
这里我也不多讲了......如果有兴趣,,mail给我都可以..... |