USB ist keine Schnittstelle, mit der auf diese Art und Weise
kommuniziert wird. Nicht ohne Grund steht da ein "B" im Namen, was für
Bus steht, also die Möglichkeit, mehrere Geräte anzuschließen. Wie auch
beim PCI-Bus.
Und also muss Dein Programm nicht mit der USB-Schnittstelle, sondern
einem am USB angeschlossenen Gerät kommunizieren. Das geht auf zwei
Arten und Weisen: Die Firmware Deines Gerätes implementiert eine
USB-Standard-Geräteklasse wie HID oder CDC, und Dein Programm nutzt die
vom Betriebssystem vorgesehene Unterstützung von Geräten dieser
Geräteklassen, oder Dein Gerät verwendet ein eigenes Protokoll, für das
Du einen Devicetreiber als Gegenstück entwickelst, damit Dein
Betriebssystem und schlussendlich Dein Programm etwas mit Deinem Gerät
anfangen können.
Letzteres ist auch ohne Devicetreiberentwicklung über eine Library
namens libusb möglich, was die Komplexität des Unterfangens etwas
reduziert.
Deutlich sinnvoller aber ist die Nutzung einer der
Standardgeräteklassen; welche zu verwenden ist, hängt davon ab, was Dein
Gerät machen soll und welcher Art die zu übertragenen Daten sind.