aiwadgj
驱动老牛
驱动老牛
  • 注册日期2004-11-13
  • 最后登录2020-12-24
  • 粉丝0
  • 关注0
  • 积分119分
  • 威望84点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:1233回复:7

关于页表地址的一下问。。。。。。。

楼主#
更多 发布于:2005-01-25 11:41
现在要完成PCI的DMA传输。。。

其中有一个地址映射的过程。。。

映射过程要用到相应页表

现在要把这个页表地址存储在硬件的相应寄存器中,

现在要问的就是:


在驱动中如何获取这个页表地址?

有专门的函数么?

谢谢。。。。。。。。。

酒也在沉溺,何时麻醉我抑郁。过去了的一切会平息。。。。。。。
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
沙发#
发布于:2005-01-25 20:22
什么意思??一般可以通过CR3来获得PDE,PDE等.PAE下获得PDPE.PDE,PTE,ADM64下获得PML4E.PDPE.PDE,PTE
都可以通过查表获得.

其实可以放在内存中,建议放在GDT的NULL SELCTOR中,由于任何情况下GDT必然影射到内存中,而且GDT的NULL SELCTOR在X86-32下也永远不会用来进行内存访问,所以是保存的最佳的地方....
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
aiwadgj
驱动老牛
驱动老牛
  • 注册日期2004-11-13
  • 最后登录2020-12-24
  • 粉丝0
  • 关注0
  • 积分119分
  • 威望84点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2005-01-25 20:46
什么意思??一般可以通过CR3来获得PDE,PDE等.PAE下获得PDPE.PDE,PTE,ADM64下获得PML4E.PDPE.PDE,PTE
都可以通过查表获得.

其实可以放在内存中,建议放在GDT的NULL SELCTOR中,由于任何情况下GDT必然影射到内存中,而且GDT的NULL SELCTOR在X86-32下也永远不会用来进行内存访问,所以是保存的最佳的地方....



wowo大侠:

我的意思是,

硬件芯片有一个寄存器的位置专门用来存放本次DMA传输时候
要用到的页表的地址。。

因为芯片资料说的。
这个页表地址由驱动来获取,并写入相应的寄存器。

我现在问的就是:在驱动中怎么获得这个页表的地址?

然后就可以写入寄存器了,

完成配置。

我的意思您应该明白了吧?

谢谢wowo大侠。。。!



酒也在沉溺,何时麻醉我抑郁。过去了的一切会平息。。。。。。。
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2005-01-25 21:27
Walt Oney,第七章
aiwadgj
驱动老牛
驱动老牛
  • 注册日期2004-11-13
  • 最后登录2020-12-24
  • 粉丝0
  • 关注0
  • 积分119分
  • 威望84点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
  • 社区居民
地下室#
发布于:2005-01-26 09:11
Walt Oney,第七章


大侠的意思:这个页表地址就存放在当前IRP的MdlAddress域吧。

嗯!应该是这样的,

谢谢猫王了。。。。。。。。。。!

 :cool
酒也在沉溺,何时麻醉我抑郁。过去了的一切会平息。。。。。。。
aiwadgj
驱动老牛
驱动老牛
  • 注册日期2004-11-13
  • 最后登录2020-12-24
  • 粉丝0
  • 关注0
  • 积分119分
  • 威望84点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
  • 社区居民
5楼#
发布于:2005-01-26 10:07
现在还有一个问题。。。。。

Irp的MdlAddress域为PMDL类型的。

我现在用WRITE_REGISTER_ULONG配置寄存器。。

我用了一个强制类型转换。。。

将PMDL类型强制转换为ULONG。。。

编译链接可以通过。。。。

这种强制类型转换安全吗?

是不是如果编译不报错的话就可以这样转换。。?

谢谢。。。
酒也在沉溺,何时麻醉我抑郁。过去了的一切会平息。。。。。。。
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
6楼#
发布于:2005-01-26 10:45
ft,麻烦把第7章的最后一节看完了先。。。
aiwadgj
驱动老牛
驱动老牛
  • 注册日期2004-11-13
  • 最后登录2020-12-24
  • 粉丝0
  • 关注0
  • 积分119分
  • 威望84点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
  • 社区居民
7楼#
发布于:2005-01-26 11:07
ft,麻烦把第7章的最后一节看完了先。。。


猫王的意思是。。。。

用分散/聚集表完成DMA传输?
酒也在沉溺,何时麻醉我抑郁。过去了的一切会平息。。。。。。。
游客

返回顶部