WdfRequestSend completion routine gives status=0xC000000D urb USBD_STATUS=0x80000600

Thanks Doron, that was exactly the problem. Sorry but I have more questions :slight_smile:

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