wangxin_china
驱动中牛
驱动中牛
  • 注册日期2003-03-28
  • 最后登录2008-09-30
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望18点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1460回复:13

USB系统程序问题(斑竹和高手帮帮忙)

楼主#
更多 发布于:2004-01-10 17:02
问题如下:
问题1,我的设备在WIN2K和WINXP下枚举成功后,在系统任务栏中没有显示USB的图标,这是为什么?怎样做才能够显示?
问题2,计算机同时连接多个相同的设备(厂商ID和产品ID都相同),在程序中如何区分这些设备,以达到依次对各个设备进行操作?
问题3,我的程序读USB设备的时候,如果USB设备无响应,程序将停留在读取设备数据处,请问如何避免这种现象?我觉得是不是在读数据前启动一个线程,在线程中判断是否超时间,如果读数据超时就终止读操作,那么应向WINDOWS发送什么消息来终止读操作?

[编辑 -  1/13/04 by  wangxin_china]
pengenwen
禁止发言
禁止发言
  • 注册日期2003-03-07
  • 最后登录2016-04-11
  • 粉丝0
  • 关注0
  • 积分1586分
  • 威望8380点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-01-10 17:10
用户被禁言,该主题自动屏蔽!
wangxin_china
驱动中牛
驱动中牛
  • 注册日期2003-03-28
  • 最后登录2008-09-30
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望18点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-01-10 20:58
1、对于显示图标的问题,你是不是在驱动中把处理查询设备能力的IRP请求中的意外删除标志设成TRUE了,设成FALSE试试

你的意思是说是驱动的问题?是不是没有设备描述就不会显示这个图标?

2、关于这个问题,请搜一下我的回复帖子,我在有个帖子中作了详细的说明。

你可以告诉我你的帖子的名字么?

3、我也觉得这个问题有点难解决,并且我还发现,当设备没有数据时,第一次读时驱动会返回来的,但是下一次再读时,竟然USBD都不反应了,我的解决办法:很苯,当设备没有数据时,都以0字节响应,这样就不会出现设备NAK了。

这个办法我想过了,是可以解决但是我想知道计算机系统是应该怎么解决的。我看周立功的测试程序就解决了这个问题。
pengenwen
禁止发言
禁止发言
  • 注册日期2003-03-07
  • 最后登录2016-04-11
  • 粉丝0
  • 关注0
  • 积分1586分
  • 威望8380点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-01-10 21:41
用户被禁言,该主题自动屏蔽!
wangxin_china
驱动中牛
驱动中牛
  • 注册日期2003-03-28
  • 最后登录2008-09-30
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望18点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-01-13 19:02
谁知道啊,帮帮我.
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-01-13 21:35
你可以采用异步io的方式来进行数据读写,然后判断overlapp标志,如果超时就cancel io,这样就不会出现你说的情况了,具体清参考tigerzd的回复的贴子“怎样在驱动层和应用层建立准消息机制”
wangxin_china
驱动中牛
驱动中牛
  • 注册日期2003-03-28
  • 最后登录2008-09-30
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望18点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-01-13 23:11
我没有找到这个帖子,能够不能够贴出来?
pengenwen
禁止发言
禁止发言
  • 注册日期2003-03-07
  • 最后登录2016-04-11
  • 粉丝0
  • 关注0
  • 积分1586分
  • 威望8380点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-01-14 08:33
用户被禁言,该主题自动屏蔽!
whelk
驱动牛犊
驱动牛犊
  • 注册日期2003-10-08
  • 最后登录2006-10-10
  • 粉丝0
  • 关注0
  • 积分22分
  • 威望4点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-01-14 09:04
严重关注中....,希望有人可以提供异步读写的程序源码
zhang_zf
驱动牛犊
驱动牛犊
  • 注册日期2002-11-14
  • 最后登录2004-02-14
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-01-28 12:59
我感觉取消IRP的逻辑很复杂,所以我一般没有数据时就上传0长度包,使设备永远不会NAK


不知你用的是什么USB芯片,似乎D12不能收发长度为0的包。
pengenwen
禁止发言
禁止发言
  • 注册日期2003-03-07
  • 最后登录2016-04-11
  • 粉丝0
  • 关注0
  • 积分1586分
  • 威望8380点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-01-28 14:22
用户被禁言,该主题自动屏蔽!
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-01-28 21:49
下面贴子的第11个回复中:
http://www.driverdevelop.com/forum/viewthread.php?tid=25734#pid173612
wangxin_china
驱动中牛
驱动中牛
  • 注册日期2003-03-28
  • 最后登录2008-09-30
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望18点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2004-01-29 15:34
有没有不依靠驱动程序取消的办法啊?
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2004-01-30 12:34
呵呵,请求已经发到驱动程序进行排队处理了,你不通过驱动程序怎么取消呢?usb的操作不通过驱动程序是不能处理的,因为device芯片是从设备,只能靠响应主机请求来工作,如果没有了上层,那就没有用了,除非你做OTG。
游客

返回顶部