阅读:1459回复:13
USB系统程序问题(斑竹和高手帮帮忙)
问题如下:
问题1,我的设备在WIN2K和WINXP下枚举成功后,在系统任务栏中没有显示USB的图标,这是为什么?怎样做才能够显示? 问题2,计算机同时连接多个相同的设备(厂商ID和产品ID都相同),在程序中如何区分这些设备,以达到依次对各个设备进行操作? 问题3,我的程序读USB设备的时候,如果USB设备无响应,程序将停留在读取设备数据处,请问如何避免这种现象?我觉得是不是在读数据前启动一个线程,在线程中判断是否超时间,如果读数据超时就终止读操作,那么应向WINDOWS发送什么消息来终止读操作? [编辑 - 1/13/04 by wangxin_china] |
|
沙发#
发布于:2004-01-10 17:10
用户被禁言,该主题自动屏蔽! |
|
板凳#
发布于:2004-01-10 20:58
1、对于显示图标的问题,你是不是在驱动中把处理查询设备能力的IRP请求中的意外删除标志设成TRUE了,设成FALSE试试 你的意思是说是驱动的问题?是不是没有设备描述就不会显示这个图标? 2、关于这个问题,请搜一下我的回复帖子,我在有个帖子中作了详细的说明。 你可以告诉我你的帖子的名字么? 3、我也觉得这个问题有点难解决,并且我还发现,当设备没有数据时,第一次读时驱动会返回来的,但是下一次再读时,竟然USBD都不反应了,我的解决办法:很苯,当设备没有数据时,都以0字节响应,这样就不会出现设备NAK了。 这个办法我想过了,是可以解决但是我想知道计算机系统是应该怎么解决的。我看周立功的测试程序就解决了这个问题。 |
|
地板#
发布于:2004-01-10 21:41
用户被禁言,该主题自动屏蔽! |
|
地下室#
发布于:2004-01-13 19:02
谁知道啊,帮帮我.
|
|
5楼#
发布于:2004-01-13 21:35
你可以采用异步io的方式来进行数据读写,然后判断overlapp标志,如果超时就cancel io,这样就不会出现你说的情况了,具体清参考tigerzd的回复的贴子“怎样在驱动层和应用层建立准消息机制”
|
|
6楼#
发布于:2004-01-13 23:11
我没有找到这个帖子,能够不能够贴出来?
|
|
7楼#
发布于:2004-01-14 08:33
用户被禁言,该主题自动屏蔽! |
|
8楼#
发布于:2004-01-14 09:04
严重关注中....,希望有人可以提供异步读写的程序源码
|
|
9楼#
发布于:2004-01-28 12:59
我感觉取消IRP的逻辑很复杂,所以我一般没有数据时就上传0长度包,使设备永远不会NAK 不知你用的是什么USB芯片,似乎D12不能收发长度为0的包。 |
|
10楼#
发布于:2004-01-28 14:22
用户被禁言,该主题自动屏蔽! |
|
11楼#
发布于:2004-01-28 21:49
下面贴子的第11个回复中:
http://www.driverdevelop.com/forum/viewthread.php?tid=25734#pid173612 |
|
12楼#
发布于:2004-01-29 15:34
有没有不依靠驱动程序取消的办法啊?
|
|
13楼#
发布于:2004-01-30 12:34
呵呵,请求已经发到驱动程序进行排队处理了,你不通过驱动程序怎么取消呢?usb的操作不通过驱动程序是不能处理的,因为device芯片是从设备,只能靠响应主机请求来工作,如果没有了上层,那就没有用了,除非你做OTG。
|
|