阅读:1706回复:7
关于我的usb write的size不能大于65535的问题?请教!!
我做的usb,有个问题弄不明白,为何我一次write大于64k,write就出错,getlasterrorcode=87,无效的参数。小于64k很好。敢问各位高手,这是怎吗会事呢?
|
|
最新喜欢:abei11
|
沙发#
发布于:2003-05-26 16:57
只能小于64k,等于都不行,分多次write
|
|
板凳#
发布于:2003-05-26 17:20
你是在 user mode 还是在 kernel mode 传? 在 driver 中,一次传送的大小你自己可以设置。 :D
|
|
|
地板#
发布于:2003-05-27 15:22
难道是usbd.sys做了限制?密切关注中,请高手支招 :(
|
|
|
地下室#
发布于:2003-05-27 15:53
你是在 user mode 还是在 kernel mode 传? 在 driver 中,一次传送的大小你自己可以设置。 :D 哈哈!!!看了一下驱动代码才知道cypress的驱动里面初始化每个管道的最大传输量是64*1024-1,哈哈,有需要的朋友自己改一下这个缺省值 :D :D :D |
|
|
5楼#
发布于:2003-05-28 08:46
在startdevice时配置usb dvice,确实有对pipe最大传输尺寸进行重新设置。
Interface = &urb->UrbSelectConfiguration.Interface; for (i=0; i< Interface->NumberOfPipes; i++) { // // perform any pipe initialization here // Interface->Pipes.MaximumTransferSize = 64*1024-1;//64k-1 } UsbBuildSelectConfigurationRequest(urb, (USHORT) siz, ConfigurationDescriptor); // Interface->AlternateSetting = 3; ntStatus = D12_CallUSBD(DeviceObject, urb); 不知改动这里是否可管用,偶先试试,谢谢楼上的各位兄弟。 :P |
|
|
6楼#
发布于:2003-05-28 09:18
兄弟们偶每人都给分了,虽然每人1分,但是表达俺的心意 :D :D :D
|
|
|
7楼#
发布于:2003-05-29 11:11
青鸟华光有用D12开发USB的项目吗?
|
|