Существуют различные драйверы «виртуального последовательного порта», которые предоставляют вам либо пару последовательных портов (например, вы пишете в COM1A и программа читает из COM1B), либо порт, подключенный по TCP (вы подключаетесь к localhost: 1234, отправляете данные и программа читает его из COM1).
Большинство из них являются коммерческими продуктами; com0com с открытым исходным кодом, но не предоставляет подписанные драйверы.