阅读:1509回复:2
Isa卡中自带RAM如何在ring3层程序中直接读写?
我有一块Isa卡,其自己带有一段RAM,我自己想这样,可以吗?
1。HalTranslateBusAddress();把总线相关的物理地址转换成系统空间的物理地址; 2。MmMapIoSpace();把系统空间的物理地址映射到虚拟地址空间; 3。置DO_DIRECT_IO位。设置驱动程序和ring3层应用程序之间的内存访问方式。 还有一个问题,我看ddk下的mapmem例子后,有个疑问: InitializeObjectAttributes() ZwOpenSection() ObReferenceObjectByHandle() ZwMapViewOfSection() 它调用这些函数在干些什么勾当? 它为什么把开始和结束物理地址分别映射,而不只映射开始的物理地址?结束的地址可以直接用开始的地址加地址长度啊? :( :( |
|
沙发#
发布于:2002-11-19 17:03
我也有类似的问题,
学习中。。。。。 |
|
板凳#
发布于:2002-11-23 20:48
不一定!
因为win好像将4K定为一个页,如果你的内存过大,它可能被分成多个页,页页之间的虚拟地址可不一定是连续的! |
|