zhangkefu_shy
驱动牛犊
驱动牛犊
  • 注册日期2002-07-27
  • 最后登录2004-09-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1235回复:2

为什么我在XP下无法映射内存地址?

楼主#
更多 发布于:2003-08-17 11:53
我正在学习开发XP的驱动,最近碰到这个问题始终无从下手。
我先在DriverEntry中使用ExAllocatePoolWithTag从非分页池
中分配了两个64K的存储空间,再分别使用IoAllocateMdl和
MmBuildMdlForNonPagedPool分配并建立了相关的MDL。最后
通过响应IOCTL在用户线程环境中使用MmMapLockedPagesSpecifyCache(
mdl,UserMode,MmNonCached,NULL,FALSE,HighPagePriority)函数
将锁定的页面映射至进程的用户地址空间中。
如此编译的驱动在我的开发机上可正常的采数,只是同时运行其他程序时,系统
响应奇慢(暂时不管)。我再换其他同类型的机器试驱动,却总在执行地址映射时机器
重新启动。后来在其他机器上安装DriverStudio后(我的开发机上有),驱动又可正常工作。
我继续在联想的开天(P4,2.4GCPU)机上测试,竟然不需安装DriverStudio也可
使用驱动.这些电脑都安装相同的Windows XP.实在令人费解!!
我的开发平台是:联想815G的主板,C700的CPU,Windows XP 专业版及DDK,MS VC++6.0.
不知各位大侠碰到类似问题没?还望多多赐教,小生万般感谢先!!
zhangkefu_shy
驱动牛犊
驱动牛犊
  • 注册日期2002-07-27
  • 最后登录2004-09-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-08-18 14:49
自己顶一下,各位可以谈谈自己的看法嘛。
zhangkefu_shy
驱动牛犊
驱动牛犊
  • 注册日期2002-07-27
  • 最后登录2004-09-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-08-20 13:49
难道是我的地址映射函数使用不正确吗?我也是在用户线程环境下使用的呀。 :(
游客

返回顶部