阅读:1461回复:7
紧急求救,200分表示感谢,URB失败问题用户被禁言,该主题自动屏蔽! |
|
沙发#
发布于:2004-03-08 14:26
照理分解urb不会有问题的。
不过huoxy已经证实此一现象,也只能理解为微软或其他第三方的bug了。 有些东西弄不清楚真是令人遗憾。 希望有知道更具体细节的高手出手啊!!! 该出手时就出手。 |
|
|
板凳#
发布于:2004-03-08 13:49
好,长见识了
|
|
地板#
发布于:2004-03-08 12:11
你说的这个问题我也遇到过,也是把一个读写请求分成多个URB来处理。这种方法在做USB1.1时没有问题,当时用的芯片是D12。做2.0用的芯片是68013,同样的驱动,就容易出问题。我定义硬件的EP2缓冲区为 4 x 512。
一开始,我测试的过程中,没有发现这个问题,当时的操作系统是xp。后来在另外一台机器上测试时,出现了这个问题,操作系统是2k,后来,在xp sp1上也发现了这个问题。ReadFile的返回值可能为任意数值,跟踪发现URB调用都正常,但是下级驱动处理的过程中出了问题。我忘了返回的参数是什么了。 最后,我的解决方法是不分成多个URB处理,也就是说,每个ReadFile都对应一个URB调用。这样就可以解决问题,到现在为止,没有发现问题。 不知道,是不是因为在2.0环境下USBD来不及处理大量的传输。 |
|
|
地下室#
发布于:2004-03-08 11:48
用户被禁言,该主题自动屏蔽! |
|
5楼#
发布于:2004-03-07 20:59
你在哪里看到STATUS_END_OF_FILE, URB 不可能返回这个错误的。
只有文件系统才会返回这个错误。 |
|
|
6楼#
发布于:2004-03-07 20:40
用户被禁言,该主题自动屏蔽! |
|
7楼#
发布于:2004-03-07 20:27
应该不是下边没有数据,下边没有数据会PENDING的(你在driver中应该采用同步处理了吧)。好象是下边返回了少于缓冲区大小的数据或零长度数据包,导致传输结束。
|
|
|