阅读:1661回复:9
问一个向USB设备写数据的问题(急~~~~~~~~~~~~~~~~~)
我在应用程序中用WRITEFILE向设备的BULKOUT端口写数据,我发现当数据长度超过4096个后,写数据就会出现错误。问题就是:这个4096的限制是怎么来的呢,在我的应用程序,驱动程序中都没有这个限制呀。驱动程序的端口最大buffer我定义的是0x100000。
|
|
沙发#
发布于:2003-12-03 10:39
用户被禁言,该主题自动屏蔽! |
|
板凳#
发布于:2003-12-03 10:56
绝对没有!!!!
真的!!!! 我都要郁闷死了 |
|
地板#
发布于:2003-12-03 11:23
发送一个URB请求的数据大小不能超过一个物理页面的大小,一个页面一般是4096Bytes,希望对你有所帮助。
BTW:发送大于4096的数据,可以组成多个URB包 |
|
地下室#
发布于:2003-12-03 11:27
那是不是我在应用层把我要发的数据按4096切成包再发送也可以?
实在懒得动驱动程序了,呵呵 太感谢了! |
|
5楼#
发布于:2003-12-03 11:31
以后多多向大家学习
|
|
6楼#
发布于:2003-12-03 11:37
我觉得是可以的, 但是有时候对上层接口要求太多是不太好的选择,我以为:)
|
|
7楼#
发布于:2003-12-03 12:17
你所说的出错指的是什么?
是设备收到的数据不对呢还是传不下去? 如果前面说的问题你都查了没有那就很奇怪了! 我传64k都没问题的。 |
|
8楼#
发布于:2003-12-03 12:35
是数据传不下去,用debug调试应用程序,WRITEFILE返回的错误代码为87,好像是ERROR_INVALID_PARAMETERS.
|
|
9楼#
发布于:2003-12-03 13:17
用户被禁言,该主题自动屏蔽! |
|