阅读:1155回复:2
大家进来看看,简单的USB驱动问题,50分送出!
一个低速USB设备驱动,我创建一个中断传输URB,指定了待往设备发送的数据缓冲区地址,并将我要发送的数据长度传给URB。但是,当这个发送数据的长度大于8的时候,通过IRP向USBD提交URB返回的status为0xC000000D,即USBD_STATUS_BUFFER_UNDERRUN,我搜过,大概的意思是USB设备来不及响应USBD发送给他的数据。但是当URB中发送数据为8(本设备中断传输的最大长度)时,一切OK,返回状态为0即成功。好像论坛上有人问过此问题,但没有回答。我真心希望好心人能够指点迷津,如果50分不够,我愿翻倍,或者用RMB赠送,谢谢大家!
|
|
沙发#
发布于:2004-09-04 20:39
大家怎么不回答啊 是这个问题太奇怪了?还是分数少了?
分数可以多给 希望大家帮忙 谢谢了! |
|
板凳#
发布于: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了. 发送超过最大长度的数据时是需要分多次发送的. |
|