> it wouldn't work with the HID example and after reading up on USB's Communication Device Class I can get the virtual serial port only to about 128 kB/sec.
Yes - using HID means that you have to rely on two 'interrupt' endpoints in your interface (the USB configuration your O/S selects is theoretically composed of a number of interfaces, but HID uses only one). Interrupt endpoints exchange interrupt packets that can be issued only once per frame (i.e. once per ms) or possibly (if you support them) in a small number of microframes (of which there are 8 per frame). In USB 1.1 (full speed) the maximum size of a transfer is 64 bytes.
If you were to use USB 2 (hi speed, which I expect your hardware is capable of) the maximum transfer size rises significantly to 1KB. But your bandwidth limitation still derives from you choice of the HID class.
Greater performance (although less predictable latency) can be achieved by using your interface definition (and therefore class), e.g. using 'bulk' endpoints, as David proposes.
> Is there some way to get to Full-Speed without having to develop a device-specific Windows driver myself? (unfortunately, using libusb-win32 or libusbk is not an option :-/)
In principle I think "any" user-mode (i.e. non-kernel-mode) USB library should do. But actually we've never looked beyond libusb (it's mulit-platform and what we use in LPCXpresso).
Sincerely
LPCXpresso IDE Support