I'm using the DDK (3790) isousb driver example to check out my high-speed
hardware - it generates 1000 byte packets approx every 300uS, so sometimes
when it is polled by the PC it has no data ready and so sends a zero-length
packet (as req'd by the spec).
However the driver doesn't seem to react to these. The
USBD_SHORT_TRANSFER_OK flag is not set (in PerformHighSpeedIsochTransfer()),
yet the driver just shows occasional zero-length packets received in amongst
the 1000-byte packets. I was expecting to see something in
urb->UrbIsochronousTransfer.IsoPacket[i].Status, but it is zero for all
packets.
[I am doing a 8000 byte read request (from the rwiso app), so the IRP is
split into a single subsidiary irp/urb, containing 8 packets.]
Shouldn't there be an error generated, or have I misunderstood the purpose
of this flag? (in which case what is it for)
Thanks