Content originally posted in LPCWare by Tsuneo on Sat Jun 09 07:17:53 MST 2012
Ah yes.
CDC is handy. It's good enough for light home/office application and quick experiment.
For heavy-duty application, generic drivers, WinUSB or libusb(-x86), provide better control over USB. For example, Windows CDC driver (usbser.sys) silently drops bulk IN pipe, when burst noise defeats USB hardware retries. In such case, generic drivers notify your application, at least. And then your application recovers the IN pipe by pipe reset.
Fortunately, CDC device is driven by generic driver without any change of its firmware. Just assign VID/PID of the CDC device at the driver's INF file. Therefore, you may start with CDC, and easily change to generic driver, when you need more control.
Tsuneo