wzh
wzh
驱动牛犊
驱动牛犊
  • 注册日期2001-07-03
  • 最后登录2010-10-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望6点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
阅读:2263回复:3

如何访问内存地址

楼主#
更多 发布于:2001-07-04 10:57
用VTOOLSD V3.0,读写内存地址,用什么函数?

最新喜欢:

xiangshifuxiangs...
lao_o
驱动牛犊
驱动牛犊
  • 注册日期2001-03-23
  • 最后登录2018-05-30
  • 粉丝0
  • 关注0
  • 积分-14分
  • 威望110点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2001-07-04 16:22
是什么内存地址?
北溟鱼
驱动牛犊
驱动牛犊
  • 注册日期2001-05-23
  • 最后登录2007-01-19
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2001-07-05 00:17
从内存物理地址到线性地址的转换工作:
在Windows 95 下。DDK, 用VMMCall MapPhysToLinear 来调用VxD 的系统服务MapPhysToLinear 进行地址映射;VtoolsD,中这个函数的定义:PVOID MapPhysToLinear( CONST VOID * PhysAddr, DWORD nBytes, DWORD Flags),PhysAddr为要映射的内存的物理地址的起始位置,nBytes 是内存区域的长度,Flags必须设置为0,返回值是这段物理地址映射的线性内存地址,如果指定的内存不能存取,函数将返回0xFFFFFFFF。返回指针(值)可以象普通的指针一样进行读写操作,而通过对这个指针的操作就可以实现对物理内存的读写。
在Windows NT。首先调用IoReportResourceUsage 请求使用设备的内存,然后调用HalTranslateBusAddress 转换与总线相关的内存为系统的物理内存地址,再使用MmMapIoSpace把设备的内存映射到虚拟空间。
9x下Since physical addresses do not move, the linear address returned by MapPhysToLinear service remains valid。
2000下在设备驱动卸出时调用MmUnmapIoSpace断开设备的内存和虚拟空间的连接。
北溟有巨鱼,身长数千里。 仰喷三山雪,横吞百川水。 凭陵随海运,
wzh
wzh
驱动牛犊
驱动牛犊
  • 注册日期2001-07-03
  • 最后登录2010-10-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望6点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
地板#
发布于:2001-07-05 08:34
谢谢袁浩!
游客

返回顶部