wxbfly
驱动牛犊
驱动牛犊
  • 注册日期2003-06-16
  • 最后登录2012-02-17
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
阅读:1702回复:3

USBD_PIPE_INFORMATION结构中的MaximumTransferSize成员到底有什么作用?如果传输的字节数大于它的时候,是否要分为几个IRP处理?

楼主#
更多 发布于:2003-07-18 14:56
我在配置设备前设置此值为64*1024,但在配置完成后返回的此值却为4*1024,这是怎么回事?

请高手指点。
wxbfly
驱动牛犊
驱动牛犊
  • 注册日期2003-06-16
  • 最后登录2012-02-17
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-07-18 16:14
多谢老兄帮助。

我的驱动是用的DDK自带的bulkusb.sys。板子是用的周立功的smart开发板,应该都是没有问题的。我只是把驱动里的数字改得大了一点,原来是4096。

我看过以前的一些讨论,说此成员决定一次向usbd.sys提交的数量块大小。应该与开发板没有关系的。

对了,再请教一问题,就是usb读的超时问题。我在读处理中新建一irp,将urb请求附加至此新irp,设置完成例程并等待事件,发现超时就iocancelirp并退出,但速度很慢,并经常出现超时现象,但实际不应该出现此现象。用原来的代码就没有问题,但不能超时退出。
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-07-18 15:44
如果你想传输大于它必须分批传送,否则会死机的,你可以在应用程序里分,也可以送到驱动里分。
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-07-18 15:43
你到驱动程序源代码里去看看,有可能是你设置出了问题,不知道你是怎么让它返回的,是和pipeinfo一起返回的吗,遇到这种情况最好用softice等软件到驱动相应的地方去看看。
游客

返回顶部