yanpingsz
驱动牛犊
驱动牛犊
  • 注册日期2011-01-10
  • 最后登录2011-01-16
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望21点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1831回复:3

初学驱动,一个关于DeviceIoControl的小问题

楼主#
更多 发布于:2011-01-10 17:40
我现在要写的是一个PCI9054的驱动,板卡实验室自己画的,用来采集数据的。
板卡上有一块RAM,采集到的数据在RAM中,应用程序通过DeviceIoControl与驱动通信,读取RAM中数据。

我现在的问题是:怎么在DeviceIoControl函数中指定数据的起始地址呢?
比如我想读取RAM中,地址0x0034开始往后的100Bytes数据。我只能通过DeviceIoControl的第六个参数nOutBufferSize来指定数据长度100,但没法指定起始地址啊?
当驱动程序处理这个IRP时,从RAM读数据时,就没法知道该从哪儿开始读了呀?

还是一般都不指定起始地址的,比如默认从0开始?
求大侠解释
Pegram
论坛版主
论坛版主
  • 注册日期2005-12-03
  • 最后登录2013-08-23
  • 粉丝13
  • 关注5
  • 积分1333分
  • 威望4717点
  • 贡献值1点
  • 好评度78点
  • 原创分0分
  • 专家分2分
沙发#
发布于:2011-01-15 16:13
办法很多,比如:可以把一个DWORD值的地址作为inputBuffer参数传入驱动。
《寒江独钓》与《竹林蹊径》的合作作者。精通USB开发,设计了CY001 USB驱动套件(http://bbs.driverdevelop.com/read.php?tid-119314.html)。
yanpingsz
驱动牛犊
驱动牛犊
  • 注册日期2011-01-10
  • 最后登录2011-01-16
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望21点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2011-01-16 21:34
谢谢ls
请问还有什么其他常用的方法吗?
mayasu
驱动牛犊
驱动牛犊
  • 注册日期2010-08-03
  • 最后登录2012-03-08
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望31点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2011-01-22 21:25
1)作为输入参数传进去
2)使用writefile
我是这么做的。。。
游客

返回顶部