dingdang
驱动牛犊
驱动牛犊
  • 注册日期2003-11-13
  • 最后登录2005-02-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2006回复:11

紧急求助:关于应用程序收发数据的问题

楼主#
更多 发布于:2004-10-14 19:05
各位大侠来帮我想一下
应用程序在利用devicoiiocontrol()与外设进行通信时,如果此时应用程序利用该函数发了读数据的请求但是外设又没有将数据准备好,此时USB总线是否就一直等在那里?若应用程序想把刚才没有完成的读操作取消掉,该用什么方法?我试了用closehandle,发现不行。
xjLegend
驱动小牛
驱动小牛
  • 注册日期2002-11-04
  • 最后登录2005-06-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-10-14 19:13
是的,读不出来数据 就一直等,直至超时,函数才返回

所以 要修改接收数据流程,可以是外设准备好数据后通知主机来取。
我想要点分,这样才有成就感嘛!
dingdang
驱动牛犊
驱动牛犊
  • 注册日期2003-11-13
  • 最后登录2005-02-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-10-14 19:42
但是根据USB协议,主机端的USB总线一直在轮询,所有的命令都由主机端发起的。外设准备好数据后怎么通知主机呢?
是的,读不出来数据 就一直等,直至超时,函数才返回

所以 要修改接收数据流程,可以是外设准备好数据后通知主机来取。
dingdang
驱动牛犊
驱动牛犊
  • 注册日期2003-11-13
  • 最后登录2005-02-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-10-14 19:48
如果在总线上的读操作没有完成后,我再调用deviceiocontrol进行写操作,此时写能成功。但等待的那个读操作在设备端有数据时还是无法返回数据,不知道这是什么原因。
wanggang508
驱动小牛
驱动小牛
  • 注册日期2003-08-24
  • 最后登录2005-03-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-10-15 08:02
请问xjLegend,该如何实现“外设准备好数据后通知主机来取”,请不吝赐教!!!
多多交流,少走弯路!!!
wly76
驱动小牛
驱动小牛
  • 注册日期2004-08-12
  • 最后登录2008-04-24
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望3点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-10-15 12:25
devicoiiocontrol()可以在两种方式下工作,同步和异步,须和
驱动配合,同步时要等驱动程序完成全部操作才返回,异步时可以
返回未完成,但不是失败。
dingdang
驱动牛犊
驱动牛犊
  • 注册日期2003-11-13
  • 最后登录2005-02-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-10-15 14:04
请问如果我的读操作由于设备端没有数据而等待在那里,此时应用程序继续进行其他写操作,若之后设备端有了数据,该怎么让上次等待在那里的读操作继续完成?
huiming
驱动小牛
驱动小牛
  • 注册日期2001-05-05
  • 最后登录2009-07-09
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-10-15 17:32
请问dingdang,你使用devicoiiocontrol()时需要客户驱动程序辅助吗?
驿动的心!放飞的心!勇敢的心!
dingdang
驱动牛犊
驱动牛犊
  • 注册日期2003-11-13
  • 最后登录2005-02-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-10-15 18:02
用的和系统自带的驱动
请问dingdang,你使用devicoiiocontrol()时需要客户驱动程序辅助吗?
vitiluck
驱动牛犊
驱动牛犊
  • 注册日期2004-07-27
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望5点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-10-16 01:18
可以用事件通知。即ioctl先向驱动传送一个事件。
或者用应用程序的异步通知。对驱动而言,需要做一个IO pending了。
dingdang
驱动牛犊
驱动牛犊
  • 注册日期2003-11-13
  • 最后登录2005-02-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-10-16 09:37
这些应该怎么做呢,我一点头绪都没有
可以用事件通知。即ioctl先向驱动传送一个事件。
或者用应用程序的异步通知。对驱动而言,需要做一个IO pending了。
yuanyuan0101
驱动牛犊
驱动牛犊
  • 注册日期2004-09-03
  • 最后登录2004-11-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-10-29 10:17
请问dingdang,使用devicoiiocontrol()跟系统自带的驱动配合可以控制usb设备的电源状态吗???
游客

返回顶部