public UsbTransferQueue(UsbEndpointBase endpointBase, int maxOutstandingIO, int bufferSize, int timeout, int isoPacketSize)
{
EndpointBase = endpointBase;
IsoPacketSize = isoPacketSize;
Timeout = timeout;
BufferSize = bufferSize;
MaxOutstandingIO = maxOutstandingIO;
mTransferHandles = new Handle[maxOutstandingIO];
mBuffer = new byte[maxOutstandingIO][];
for(int i=0; i < maxOutstandingIO; i++)
mBuffer[i] = new byte[bufferSize];
IsoPacketSize = isoPacketSize > 0 ? isoPacketSize : endpointBase.EndpointInfo.Descriptor.MaxPacketSize;
}