USB geräte werden klassifiziert, z.b. Mass Storage, Audio, HID (Human Interface Device), CDC usw.
Für viele dieser Klassen bringen alle Betriebsysteme Treiber mit wie z.b. MassStorage deshalb musst du keinen Treiber installieren wenn du deinen USB Stick in den rechner steckst. FTDI Haben sich ihren eigenen Treiber geschrieben und emulieren über diesen Einen
COM Port. Eigentlich würde das orgentlicher weise über eine CDC Klasse implementiert werden können dafür bringen alle Betriebsysteme Treiber mit (CDC ist Comport Emulation).
Bei HID Geräten ist es nun so das das BS auch einen Treiber mitbringt dieser jedoch nur sehr generelle Funktionen Bereitstellt (Setup, read, write) die daten werden auch direkt dem gerät durchgereicht man kann also mit HID Geräten direkt aus dem Userspace kommunizieren. Es gibt auch ne Delphi Komponente die einem die Systemnahen Geschichten dabei abnimmt. In der JVCL.
Auf Geräteseite ist das bei USB Controllern recht einfach implementierbar gibts eigentlich auch immer Appnotes der Hersteller dazu. Für AVR und PIC gibts auch Software USB Implementierungen die das können. Ich hab ja keine Ahnung wie deine Anwendung ausschaut und was für einen Controller du verwendest.