阅读:1119回复:6
请教内存的一些问题?
对于用户层的进程来说,寻址的方式可能是:
虚拟地址通过段选机制,获得线性地址,在通过分页机制,得到实际的物理地址。 对于核态的驱动程序来说,首先得到的是与总线相关的地址,经过转换,得到线性地址,在通过MmMapIoSpace得到虚拟地址。 我们知道,线性地址,是指页表目录的地址。对于外围存储设备,如硬盘,软盘,光盘,对其的读写,都是通过cpu对内存操作,间接进行的。我不知掉具体是如何操作的。对于其他板卡上的内存,如显卡,自制板卡,是否也是通过内存间接操作,还是向简单的单片机那样直接选址操作,同时我们在创建deviceobj时,会设置标志来决定是否缓冲读写,这具体指的是什么?是否仅是指用户层操作时为提高读写效率而采用的一种管理方式? 另外,我在编写pci板卡的wdm类型驱动时,在处理IRP_MN_START_DEVICE的历程中,从irp包中得到AllocatedResourcesTranslated资源是否时与总线相关的?仅需使用MmMapIoSpace转换即可?另外,AllocatedResources 和它有什么区分?而且我用工具在2000下调试wdm类型的和nt kmd 类型的driver时,发现AllocatedResourcesTranslated中指示的地址与nt类型中得到的总线相关的地址是相同的,难道它是与总线相关的地址? |
|
|
沙发#
发布于:2002-07-18 18:24
看书。
|
|
板凳#
发布于:2002-07-18 18:40
用户被禁言,该主题自动屏蔽! |
|
地板#
发布于:2002-07-19 10:06
老兄:
具体一点好吗?给个书名总可以吧? |
|
|
地下室#
发布于:2002-07-23 08:15
你的问题解决没有?我也遇到这个问题了?希望能给一些经验?
|
|
5楼#
发布于:2002-07-23 09:16
walt oney的书。本站好像有的。
|
|
6楼#
发布于:2002-07-24 10:35
sorry,最近有点烦、问题没有解决
|
|
|