robin
驱动牛犊
驱动牛犊
  • 注册日期2001-05-14
  • 最后登录2009-10-21
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望13点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
阅读:1860回复:6

难道没人遇到这样常见的问题吗,PCI 卡读写数据的问题。

楼主#
更多 发布于:2001-08-17 11:07
pci 卡读写 使用readfile( ) writefile() 时,如何指定要读写的地址段的初始地址,
在readfile() 里面只有个读的长度的参数,难道必须一次全读完?
我本来打算使用readfile() 最后一个参数,overlapped, overlapped
有2个成员 offset和offsethigh, 但是我始终不明白这个参数到了
irp 变成了什么东西,为了应付老板的交工期限,我采用了最最弱智的办法先用deviceiocrl 传入一个起始地址,再用readfile()来读,
现在,大虾,出手指点一下我这棵巨菜吧。
我无聊,我承认
winter
驱动小牛
驱动小牛
  • 注册日期2001-03-23
  • 最后登录2013-08-15
  • 粉丝4
  • 关注0
  • 积分5分
  • 威望40点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2001-08-17 15:35
你可以用deviceiocontrol来传递参数,控制IO
请原谅我的无知与直率
wwqq012
驱动牛犊
驱动牛犊
  • 注册日期2002-02-17
  • 最后登录2005-03-14
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-07-17 16:05
deviceiocontrol并不弱智
它可以完成数据读写的功能
甚至可以代替readfile
zydcat
驱动老牛
驱动老牛
  • 注册日期2001-12-06
  • 最后登录2006-04-12
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-07-17 16:16
readfile用处不大

只作简单的IO
[color=red]肥虫虫[/color] [img]http://www.driverdevelop.com/forum/upload/bradley/2002-11-15_ig01.gif[/img]
blue
驱动大牛
驱动大牛
  • 注册日期2001-04-25
  • 最后登录2010-10-15
  • 粉丝0
  • 关注0
  • 积分55分
  • 威望12点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-07-17 17:08
pci 卡读写 使用readfile( ) writefile() 时,如何指定要读写的地址段的初始地址,
在readfile() 里面只有个读的长度的参数,难道必须一次全读完?
我本来打算使用readfile() 最后一个参数,overlapped, overlapped
有2个成员 offset和offsethigh, 但是我始终不明白这个参数到了
irp 变成了什么东西,为了应付老板的交工期限,我采用了最最弱智的办法先用deviceiocrl 传入一个起始地址,再用readfile()来读,
现在,大虾,出手指点一下我这棵巨菜吧。
 

你可以只用deviceiocrl 来完成。deviceiocrl 传入内核层两个长度
stack->Parameters.DeviceIoControl.InputBufferLength;
stack->Parameters.DeviceIoControl.OutputBufferLength;
那你就可以定义一个为偏移长度,一个为读取数据长度
seaquester
驱动大牛
驱动大牛
  • 注册日期2002-05-22
  • 最后登录2016-06-16
  • 粉丝0
  • 关注0
  • 积分500分
  • 威望115点
  • 贡献值0点
  • 好评度107点
  • 原创分0分
  • 专家分52分
5楼#
发布于:2002-07-17 17:14
如果是同步的请求可以使用 SetFilePointer设置初始地址, 但是不能用于一个nonseeking设备如COM口。
如果是overlapped请求可以使用OVERLAPPED结构传入起始地址

详细情况参看MSDN。

You cannot use the SetFilePointer function with a handle to a nonseeking device such as a pipe or a communications device. To determine the file type for hFile,use the GetFileType function.

To specify the offset for overlapped operations, use the Offset and OffsetHigh members of the OVERLAPPED structure.
八风舞遥翩,九野弄清音。 鸣高常向月,善舞不迎人。
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
6楼#
发布于:2002-07-17 18:13
这么老的都被翻出来?pfpf
游客

返回顶部