I am using the DEMOJM eval. board, with its USB cable, and a XP 1.6Ghz laptop, XP sp3.
So I dont think there is any hardware problem. (The transfer time is constant every time)
The PC data send increments a count in the data, which is echoed back by the micro.
So I seem to get all data transfers OK.
Where did you have to do data buffering? In the PC or micro?
The micro code Main loop does nothing except wait for packets & send back.
The PC HID code for recieve does a
ReadFile then
WaitForSingleObject
which seems to work OK.