gung
驱动中牛
驱动中牛
  • 注册日期2001-06-10
  • 最后登录2008-04-21
  • 粉丝0
  • 关注0
  • 积分25分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
阅读:962回复:2

有关softice操作

楼主#
更多 发布于:2002-07-23 22:38
为什么softice中使用phys指令会得到两个虚拟地址?两个地址分别表示什么?
案件:我从read srb中取出了DataBufferArray中的虚拟地址VA, 从ScatterGather中获得了物理地址PA1(page1)和PA2(page2),执行phys PA1,获得VA11和VA12,执行d VA12发现无法访问,执行d VA11发现内容正确,执行phys PA2,获得VA21和VA22,发现VA22与VA12连续,而VA21与VA11不连续,而且VA12等于VA。
这是为什么?请大虾指点!
pjf
pjf
驱动中牛
驱动中牛
  • 注册日期2001-07-08
  • 最后登录2006-10-23
  • 粉丝0
  • 关注0
  • 积分42分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-07-23 22:51
为什么softice中使用phys指令会得到两个虚拟地址?两个地址分别表示什么?
案件:我从read srb中取出了DataBufferArray中的虚拟地址VA, 从ScatterGather中获得了物理地址PA1(page1)和PA2(page2),执行phys PA1,获得VA11和VA12,执行d VA12发现无法访问,执行d VA11发现内容正确,执行phys PA2,获得VA21和VA22,发现VA22与VA12连续,而VA21与VA11不连续,而且VA12等于VA。
这是为什么?请大虾指点!


该go了,灌一水

不一定是两个,可能三个会更多,大于等于三个是由于有共享,但两个不是。
对于未加/3GB系统,小于512M物理地址与0x80000000~有线性映射关系,方便系统访问,它是连续的。另外多数有另一个虚拟地址指向这个物理地址,这VA由应用或驱动分配与使用,不连续是很正常的。
gung
驱动中牛
驱动中牛
  • 注册日期2001-06-10
  • 最后登录2008-04-21
  • 粉丝0
  • 关注0
  • 积分25分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-07-24 08:10
谢了老大  :)
游客

返回顶部