admin 管理员组文章数量: 1184232
用Bulk 传输VBI信息时,发现字幕经常出现拼写错误的问题,查了一下,原来是bulk pipe 的transfer sizes设置错误,超出了大小限制。
USB transfer sizes有如下限制:
在Windows 2000, Windows XP and Windows 2003 Server中,Transfer Sizes 的最大值:
控制管道:
4,000 bytes
块、中断管道:
256,000 bytes
同步管道:
全速设备:256帧, 高速设备:1024 帧
驱动可以设置USBD_PIPE_INFORMATION结构的成员变量MaximumTransferSize,但是一定要小于Transfer Sizes 的最大值。
The following table lists the maximum transfer sizes for each type of pipe for the major versions of Windows:
| Version of Windows | Type of Pipe | Maximum Transfer Size |
|---|---|---|
| Windows 2000 | Control pipe endpoint 0 | 4 kilobytes |
| Control pipe | 64 kilobytes | |
| Interrupt or bulk pipe | Theoretically unlimited | |
| Windows XP | Control pipe endpoint 0 | 4 kilobytes |
| Control pipe | 64 kilobytes | |
| Interrupt pipe | Theoretically unlimited | |
| Bulk pipe | 256 kilobytes | |
| Windows Vista | Control pipe endpoint 0 | 4 kilobytes |
| Control pipe | 64 kilobytes | |
| Interrupt or bulk pipe | Unlimited transfers. |
具体来说:
VOID
UsbBuildInterruptOrBulkTransferRequest(
IN OUT PURB
,
IN USHORT
,
IN USBD_PIPE_HANDLE
,
IN PVOID
OPTIONAL,
IN PMDL
OPTIONAL,
IN ULONG
, ----注意要小于上面提到的限制
IN ULONG
,
IN PURB
);
版权声明:本文标题:USB的秘密武器:解析单次传输可能携带的最大数据量 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1770881858a3538634.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论