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

RE: USBD_SHORT_TRANSFER_OK on Isochronous In by martinbo

martinbo
Mon Oct 17 14:15:13 CDT 2005

------=_NextPart_0001_198128D8
Content-Type: text/plain
Content-Transfer-Encoding: 7bit

It appears the intent in the XP and later versions of the USB stack is to
always ignore buffer underruns for isoch transfers, and set the packet
status to USBD_STATUS_SUCCESS.

Martin Borve
Windows DDK Support
This posting is provided "AS IS" with no warranties, and confers no rights.



------=_NextPart_0001_198128D8
Content-Type: text/x-rtf
Content-Transfer-Encoding: 7bit

{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fprq2\fcharset0 MS Sans Serif;}}
\viewkind4\uc1\pard\f0\fs20 It appears the intent in the XP and later versions of the USB stack is to always ignore buffer underruns for isoch transfers, and set the packet status to USBD_STATUS_SUCCESS.
\par
\par Martin Borve
\par Windows DDK Support
\par This posting is provided "AS IS" with no warranties, and confers no rights.
\par
\par
\par
\par
\par }
------=_NextPart_0001_198128D8--