superrobust
驱动牛犊
驱动牛犊
  • 注册日期2003-01-04
  • 最后登录2007-08-07
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:731回复:0

请教DS开发中read例程和应用程序通信的问题

楼主#
更多 发布于:2003-10-13 15:59
我的问题是这样的:
用DS得到9052的驱动框架和测试程序框架。想把9052的配置内容读出来。参照本站某大侠的例子在驱动中获得了配置空间的基地址,保存在baseadress0中。但在下面的mydevice::read(K Irp)例程中不知道该如何把baseaddress0返回给测试程序。

测试程序中利用doRead(val)例程从设备读val字节数据进来。在这个例程中调用了readfile(hDevice, buf, n, &nRead,overlapped=NULL)。下面是我的理解,可能想错了,请前辈指点一下。

首先,测试程序中用hdevice获得了该设备的句柄。我看msdn上readfile是针对文件操作的。也就是说它把设备当成一个文件。文件句柄最初的位置应该对应设备空间的基地址。 如果我想从设备的某一段空间开始读,那么需要知道该地址相对于基地址(句柄)的偏移量。那么这个偏移量应该是在测试程序中就给出来的,是否定义在overlapped结构的offset中?

针对上面的问题,baseaddress0应该对应于测试程序中的偏移量。如何把它返回给测试程序呢? 需要修改mydevice::read(KIrp I)例程的哪些地方。对应的测试程序中doread()例程中该如何修改。

想了很久了。也许问题比较简单,希望不吝赐教。最好能有这两个部分的源代码。我会另外开贴放分。


最新喜欢:

mapoflmapofl
everything is developing
游客

返回顶部