Я предполагаю, что ваш вопрос ориентирован на Windows. На некоторых устройствах производитель (например, Epson и Star) предоставляют утилиты, позволяющие получить доступ к устройству в виде «устаревшего последовательного» интерфейса. Это все еще USB, но программное обеспечение предоставляет вам виртуальный последовательный порт, с которым вы можете разговаривать. Я пытался выяснить, какие функции открывают драйверы низкого уровня, но мне не очень повезло, поскольку драйверы Windows на самом деле не моя сильная сторона.
В принтерах Windows вы можете выбрать один из множества портов. Для параллельных и последовательных вы можете открыть их как \. \ LPT1 или \. \ COM1 и т. Д. И таким образом получить двунаправленное поведение. Но для USB порты часто бывают USB001, и попытка открыть \. \ USB001, например, не работает. Такой подход может сработать, если вы можете точно определить, какое имя открыть. Но у этого имени, вероятно, будет большой уродливый идентификатор GUID, если информация, которую вы видите в winobj, не вызывает сомнений ...
Если вы найдете более точные ответы, пожалуйста, дайте мне знать!