Hi all,
I'm developing a Windows 2k / XP driver for a USB 2.0 device with several
bulk IN and OUT pipes.
Currently I have a problem when I want to end a bulk OUT transfer with a
size that is a multiple of max. packet size by sending a zero length
packet.
solution 1 - working:
- send out transfer with a size that is a multiple of max. packet size
- wait of out transfer completion
- send zero length packet / transfer to end previous OUT data transer
- wait for zero length completion
solution 2 - some times NOT working:
- send OUT transfer with a size that is a multiple of max. packet size
- send zero length packet / transfer to end previous OUT data transer
- wait completion of both transfers
In case solution 2 fails, the completion status of both irps is
"STATUS_DEVICE_NOT_CONNECTED" (0xC000009DL). But the data of the OUT
transfer have been received on my target device, it looks as if the
devicejust didn't get an interrupt for the zero length packet.
I'd prefer solution 2 because it's the faster one ...
So does the immediately following zero length packet destroy something?
I'd appreciate any help / information / hint!
Thank you very much for your help!
regards
Olav