Thanks Doron, that was exactly the problem. Sorry but I have more questions
Now I have another problem. I get noerrors, but the completion routine gets zero in urbBuffer->UrbIsochronousTransfer.TransferBufferLength. I looked at the USB bus and no packets are being sent. One thing of interest is that I see periodic reset events on the USB bus, and wonder if that could have something to do with it. In the driver I simply select the interface and alt setting, get the pipe, and then keep that information until it is actually time to send packets. If I don’t get any error shouldn’t TransferBufferLength>0?
I tried playing around with size and number of packets and this makes no difference. This particular pipe has bInterval=4 so only one high speed micro frame per 1ms frame. NumberOfPackets=1 and NumberOfPackets=8 makes no difference.
Regarding my secondary question from before, I am still not clear how to queue packets if bInterval=3 or bInterval=4. Does the USB stack simply skip the packets that are not supposed to be sent or should I not include the packets in the URB? Also, if bInterval=3, does it send packet#0 and packet#4 in that order?
Thanks
Philip