2017-04-20 118 views
1

我一直在尝试使用了WinUSB同步USB传输,并且事实证明了WinUSB总是以最快的速度发送数据可能:USB(了WinUSB)同步带宽管理

WinUsb_WriteIsochPipe打包传送缓存,这样在每个间隔,主机可以发送每个间隔允许的最大字节数。

不过,对于kernel drivers可以明显缩短发送数据包:

的MaximumPacketSize值指示同步数据包的最大允许大小。客户端驱动程序可以将每个同步数据包的大小设置为小于MaximumPacketSize值的任何值。

我想知道USB音频如何处理这个问题。据我在规格中可以看到,它们只有两种可供选择的接口配置 - 零带宽和非零带宽。有一个标志说明端点是否需要全尺寸数据包。

所以我的问题是:

一)什么是处理发送小于全速数据的最佳方式。我是否应该有一整套具有不同最大数据包大小的备用配置?

b)我应该期望能够发送短于最大的数据包吗?如果是这样,为什么WinUsb不允许这样做?

回答

0

也许您必须为每个要发送的数据包拨打WinUsb_WriteIsochPipe一次。确保使用异步I/O,以便可以提前排队数十或数百个请求。

+0

不,该函数启动传输,该传输必须是使用最大数据包大小的整数帧。 – Timmmm