cylone
驱动牛犊
驱动牛犊
  • 注册日期2003-05-29
  • 最后登录2003-07-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1186回复:4

在DS中访问memory空间,如何传递偏移量

楼主#
更多 发布于:2003-06-28 14:02
用DS做一pci的memorry空间读写,我用readfile/writefile将用户程序的读写请求传至驱动,然后在驱动中调用KmemoryRange的ind/outd,但我没办法将偏移量传递过去,不知如何处理?请大侠指教。谢谢!
libin2309
驱动大牛
驱动大牛
  • 注册日期2002-11-20
  • 最后登录2005-12-29
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-06-28 14:06
我以前看到过一些帖子上说,用DEVICEIOCTL来传递这个偏移量,两个缓冲区都用上。
我是一只小小鸟,永远也飞也飞不高,但我永远在飞!
hawkdtw
驱动牛犊
驱动牛犊
  • 注册日期2003-02-25
  • 最后登录2008-06-13
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-01-11 17:30
具体怎么用?
鹰――凶猛,孤独 能力高的人视野是开阔的,但是孤独的
dswei
驱动牛犊
驱动牛犊
  • 注册日期2003-03-19
  • 最后登录2010-06-13
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望40点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-01-12 17:27
你把offset和数据放在一个数组里一起传过去不就行了?
比如:
1、应用程序:
ULONG num=0;
ULONG val[2];
val[0]=offset;
ReadFile(hDevice,val,sizeof(val),&num,NULL);
2、驱动程序:
KMemory Mem(I.Mdl());
PUSHORT pBuffer = (PUSHORT) Mem.MapToSystemSpace();
ULONG offset=(pBuffer[0];
pBuffer[1] = m_BAR2.ind(offset);
如此一来,val[1]中就存有读取的数据了
wwenguang
驱动小牛
驱动小牛
  • 注册日期2002-08-12
  • 最后登录2005-08-22
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-01-13 02:27
dswei说的对!把你要传的数据放在一个数组里面一起传过去。
游客

返回顶部