yonghong204
驱动牛犊
驱动牛犊
  • 注册日期2003-12-10
  • 最后登录2010-12-22
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望80点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
阅读:1273回复:4

如何访问物理内存?

楼主#
更多 发布于:2004-03-25 19:00
  先有一块老式ISA板,现用到物理内存d800:0~3fff,在Windows 9x下,可以通过转换为线性地址进行访问,但在Windows 2000下,这一方法似乎不能应用,不知哪位大虾能告知?(windows ddk编程) :mad:
aha_here
驱动小牛
驱动小牛
  • 注册日期2003-10-11
  • 最后登录2009-03-07
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-03-25 19:13
我有个问题:ISA卡好象只有24位地址,现在的内存都超过了这范围,系统是怎么为ISA分配ISA内存地址的?
[size=3][color=red]勤学好问[/color][/size] [img]http://www.driverdevelop.com/forum/avatar/aha_here_xiao_zu.gif[/img]
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
板凳#
发布于:2004-03-25 21:21
通过\device\memory可以直接访问物理地址。
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
seaquester
驱动大牛
驱动大牛
  • 注册日期2002-05-22
  • 最后登录2016-06-16
  • 粉丝0
  • 关注0
  • 积分500分
  • 威望115点
  • 贡献值0点
  • 好评度107点
  • 原创分0分
  • 专家分52分
地板#
发布于:2004-03-26 08:58
 先有一块老式ISA板,现用到物理内存d800:0~3fff,在Windows 9x下,可以通过转换为线性地址进行访问,但在Windows 2000下,这一方法似乎不能应用,不知哪位大虾能告知?(windows ddk编程) :mad:


你是怎么做的?
将ISA使用的物理内存映射到线性地址一般应该有这么几个步骤:

1. IoReportResourceUsage
2. HalTranslateBusAddress(translate the bus-relative frame buffer address using the HAL)
3. MmMapIoSpace (map the physical address into system space)
八风舞遥翩,九野弄清音。 鸣高常向月,善舞不迎人。
yonghong204
驱动牛犊
驱动牛犊
  • 注册日期2003-12-10
  • 最后登录2010-12-22
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望80点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-03-26 20:28
多谢seaquester
我已经知道了,可怎么送分呢?

另外,获得转换后的地址后,应用程序中是否能像在windows 98中直接读写该地址,我试了一下,在windows 2000/xp中,只能在驱动程序中读写,而不能在应用程序中读写,是否正确?
游客

返回顶部