我正在为USB2.0全速设备编写固件,该设备与WinUSB主机通信,每个方向都有一个散装管道。设备何时应该发送零长度数据包(ZLP)来终止IN传输,以及它如何知道它应该?
第5.8.3节说:
当端点执行下列操作之一时,大容量传输就完成了:
已经准确地传输了预期的数据量。
传输有效载荷小于wMaxPacketSize的数据包或传输零长度数据包ZLP。
我将此解释为,当传输大小是最大数据包大小的整数倍时,应该发送ZLP,并且传输的“预期”大小大于实际大小(即可以发送的内容)。但是接受者是如何知道预期的呢?
例如,我在C#中使用了C#包装器。当我像这样从烟斗里读到
int b