Сделал проектик на базе Atmel'овского "AT91SAM7S64-BasicUSB". Там bulk-обмен с размером буфера 64 байта. Гонял обмен туда-сюда следующим образом: большой буфер делил на куски по 64 байта и WriteFile'ом (и соотв. ReadFile) прогонял. На МК ловил/отправлял с помощью AT91F_L1USB_GET_Data и AT91F_L1USB_PUT_Data, которые тоже бьют массив на части:
Код
void AT91F_L1USB_PUT_Data(char* data,unsigned int length)
{
unsigned int size;
while(length)
{
size = (length<SIZEBUFMAX) ? length : SIZEBUFMAX; // SIZEBUFMAX=64
AT91F_L0USB_PUT_Data(data, size); // это фактически pCDC.Write(&pCDC, data, length);
length -= size;
data += size;
}
}
Чего-то скорость не очень большая. Количественных замеров не сделал еще, качественно где-то на уровне сотни килобайт в секунду, мне кажется не больше. Как-то по-быстрее хотелось бы

В связи с чем три вопроса:
1) Можно ли как-то ускорить обмен (может, что-то по-другому делать)?
2) Этот пример на USB 1.1, как я понял (bcdUSBL=0x0110), чтобы сделать его 2.0 достаточно просто указать в bcdUSBL 0x0200?
3) Какие скорости у вас получались?