pengenwen
禁止发言
禁止发言
  • 注册日期2003-03-07
  • 最后登录2016-04-11
  • 粉丝0
  • 关注0
  • 积分1586分
  • 威望8380点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1459回复:7

紧急求救,200分表示感谢,URB失败问题

楼主#
更多 发布于:2004-03-07 20:19
用户被禁言,该主题自动屏蔽!
zmwk
驱动中牛
驱动中牛
  • 注册日期2001-05-15
  • 最后登录2009-04-05
  • 粉丝0
  • 关注0
  • 积分59分
  • 威望51点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-03-07 20:27
应该不是下边没有数据,下边没有数据会PENDING的(你在driver中应该采用同步处理了吧)。好象是下边返回了少于缓冲区大小的数据或零长度数据包,导致传输结束。
A strong man can save himself. A great man can save another.
pengenwen
禁止发言
禁止发言
  • 注册日期2003-03-07
  • 最后登录2016-04-11
  • 粉丝0
  • 关注0
  • 积分1586分
  • 威望8380点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-03-07 20:40
用户被禁言,该主题自动屏蔽!
zmwk
驱动中牛
驱动中牛
  • 注册日期2001-05-15
  • 最后登录2009-04-05
  • 粉丝0
  • 关注0
  • 积分59分
  • 威望51点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-03-07 20:59
你在哪里看到STATUS_END_OF_FILE, URB 不可能返回这个错误的。
只有文件系统才会返回这个错误。
A strong man can save himself. A great man can save another.
pengenwen
禁止发言
禁止发言
  • 注册日期2003-03-07
  • 最后登录2016-04-11
  • 粉丝0
  • 关注0
  • 积分1586分
  • 威望8380点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-03-08 11:48
用户被禁言,该主题自动屏蔽!
huoxy
驱动小牛
驱动小牛
  • 注册日期2002-03-01
  • 最后登录2014-02-24
  • 粉丝0
  • 关注0
  • 积分21分
  • 威望4点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
5楼#
发布于: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来不及处理大量的传输。
好好学习,天天向上,做一个乖宝宝。
clementzhao
驱动大牛
驱动大牛
  • 注册日期2003-05-08
  • 最后登录2009-02-20
  • 粉丝0
  • 关注0
  • 积分28分
  • 威望63点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-03-08 13:49
好,长见识了
zmwk
驱动中牛
驱动中牛
  • 注册日期2001-05-15
  • 最后登录2009-04-05
  • 粉丝0
  • 关注0
  • 积分59分
  • 威望51点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-03-08 14:26
照理分解urb不会有问题的。
不过huoxy已经证实此一现象,也只能理解为微软或其他第三方的bug了。
有些东西弄不清楚真是令人遗憾。

希望有知道更具体细节的高手出手啊!!!

该出手时就出手。
A strong man can save himself. A great man can save another.
游客

返回顶部