阅读:2315回复:3
向U盘发送一个bulk urb, TransferBufferLength长度为512,可返回的数据长度确是525,请高手 帮忙
hi,高手们,
我刚开始做usb驱动,现在遇到一个问题,我做了一个u盘的驱动,对该u盘调用iocontrol _URB_BULK_OR_INTERRUPT_TRANSFER时,有的urb数据,传入的TransferBufferLength长度为512,但实际返回的却是525字节的数据,这是为什么啊 |
|
沙发#
发布于:2010-01-25 11:39
你最好这样做:
1. 传一个URB到USBD,返回input buffer的长度(525) 2. 根据长度申请缓冲,再次发送URB,获取指定长度的数据。 525>512,因为它已经准备好了525字节的数据。 |
|
|
板凳#
发布于:2010-01-27 13:54
U盘用的是USB Mass Storage协议。向U盘发送的CBW包,长31,U盘回数据512 + CSW包(13 字节),加起来就是525字节啦。
|
|
地板#
发布于:2010-01-27 16:56
谢谢各位的答复
|
|