benben3611
驱动牛犊
驱动牛犊
  • 注册日期2007-10-19
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分12分
  • 威望46点
  • 贡献值0点
  • 好评度18点
  • 原创分0分
  • 专家分0分
阅读:1646回复:2

关于wince下usb cdrom遇到的问题,恳请大家帮助

楼主#
更多 发布于:2007-12-24 16:50
最近几天在ce5.0下做一个usb cdrom的东西,碰到这么个问题,很是头大,不知道问题出在哪里,希望大家给个帮助,谢谢!
在走bulk传输时出错,bklkwrite返回正常,但是bulkread的时候,debug信息如下:
-CBulkPipe::ScheduleTransfer, returning HCD_REQUEST_STATUS 1
-CPipe(Bulk)::IssueTransfer - address = 1, returing HCD_REQUEST_STATUS 1
-CFunction(tier 1)::IssueTransfer - returing HCD_REQUEST_STATUS 1
-CHub(Root tier 0)::IssueTransfer address = 1, pipe = 1, returing HCD_REQUEST_STATUS 1
-CHcd::IssueTransfer - returing BOOL 1
-USBD:IssueBulkTransfer, pTransfer:0x36A320
!!!interrupt!!!! on frame index + 1 = 0x00001f0e, USBSTS = 0x0002CPipe::CheckForDoneTransfersThread - #pipes to check = 1
CPipe::CheckForDoneTransfersThread - warning! Called when no pipes were busy
+CQueuedPipe(Bulk)::CheckForDoneTransfers
CQueuedPipe(Bulk)::CheckForDoneTransfers - queue was already finished on entry
+CBulkPipe::AreTransferParametersValid
-CBulkPipe::AreTransferParametersValid, returning BOOL 1
CQueuedPipe(Bulk)::CheckForDoneTransfers - failure on TD 0x3f58c0, address = 1, endpoint = 1, errorCounter = 0, status field = 0x22CQueuedPipe(Bulk)::CheckForDoneTransfers - a transfer is now done
感觉传输已经完成了,可是checkfordonetransfers就是出错, 不知道导致这个错误的原因,是因为设备的传输速度太快,主机来不及接收嘛,如果是的话,那要怎么进行更改。
     谢谢大家!
benben3611
驱动牛犊
驱动牛犊
  • 注册日期2007-10-19
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分12分
  • 威望46点
  • 贡献值0点
  • 好评度18点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-12-24 16:53
不知道跟那个USBSTS = 0x0002有没有关系,最近老是碰到这个CheckForDoneTransfers 的问题,一直都很困扰,不知道究竟是哪块出的问题。
benben3611
驱动牛犊
驱动牛犊
  • 注册日期2007-10-19
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分12分
  • 威望46点
  • 贡献值0点
  • 好评度18点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2008-04-16 10:36
这个CheckForDoneTransfers 产生的原因很多,但是归根结底还是要在我们的驱动层去寻找原因,只要驱动层上有一部分出现偏差,就会导致这个问题的产生。
该问题已经解决,打上最新的wince补丁,搞定,呵呵,谢谢大家的关注。
游客

返回顶部