mboma
驱动牛犊
驱动牛犊
  • 注册日期2003-02-21
  • 最后登录2010-03-11
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1155回复:2

大家进来看看,简单的USB驱动问题,50分送出!

楼主#
更多 发布于:2004-09-02 22:10
一个低速USB设备驱动,我创建一个中断传输URB,指定了待往设备发送的数据缓冲区地址,并将我要发送的数据长度传给URB。但是,当这个发送数据的长度大于8的时候,通过IRP向USBD提交URB返回的status为0xC000000D,即USBD_STATUS_BUFFER_UNDERRUN,我搜过,大概的意思是USB设备来不及响应USBD发送给他的数据。但是当URB中发送数据为8(本设备中断传输的最大长度)时,一切OK,返回状态为0即成功。好像论坛上有人问过此问题,但没有回答。我真心希望好心人能够指点迷津,如果50分不够,我愿翻倍,或者用RMB赠送,谢谢大家!
mboma
驱动牛犊
驱动牛犊
  • 注册日期2003-02-21
  • 最后登录2010-03-11
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-09-04 20:39
大家怎么不回答啊 是这个问题太奇怪了?还是分数少了?
分数可以多给 希望大家帮忙 谢谢了!
OpenCore
驱动牛犊
驱动牛犊
  • 注册日期2003-03-31
  • 最后登录2004-10-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-09-04 22:49
当这个发送数据的长度大于8的时候,通过IRP向USBD提交URB返回的status为0xC000000D,即USBD_STATUS_BUFFER_UNDERRUN,我搜过,大概的意思是USB设备来不及响应USBD发送给他的数据。但是当URB中发送数据为8(本设备中断传输的最大长度)时,一切OK,返回状态为0即成功。

???!
你既然设了中断传输的最大长度为8,当然发送超过长度超过8的数据会USBD_STATUS_BUFFER_UNDERRUN了.

发送超过最大长度的数据时是需要分多次发送的.
游客

返回顶部