Создание драйверов для виртуальных COM-портов в Windows с помощью переполнения стека

Моя цель — создать последовательное соединение между двумя удаленными компьютерами. Сообщение, которое я хочу отправить с виртуального последовательного порта, будет перенаправлено на портал с использованием протокола TCP. Затем портал отправляет полученное сообщение и перенаправляет его на последовательный порт другого компьютера.
Для этого я протестировал и хочу смоделировать программу Последовательный порт для Ethernet используя с ++. Эта программа позволяет мне создавать клиентское соединение, которое будет инициировать перенаправление данных локального реального или виртуального последовательного порта на удаленный сервер по протоколу TCP / IP. Клиент должен работать на ОС Windows. На данный момент я создал просто TCP-клиент, использующий QT, и я могу отправить QString на сервер (портал), но мне нужно написать некоторые строки с гипертерминала (такого как Putty), который открыт в виртуальном последовательном порту (COMx) что я должен создать.
Сервер создан этой командой socat:

socat -d -d pty,link=/dev/ttyS0,raw,echo=0 tcp-listen:1234

Так что я могу переслать строки, которые я получил на последовательный порт / DEV / ttyS0 это в Fedora OS.
Теперь, чтобы создать виртуальный последовательный порт, я искал в Интернете, и я нашел CreateFile функция.
С помощью этой функции я написал в QT этот код:

#include <windows.h>

HANDLE driver = CreateFileA("\\.\COM15", GENERIC_READ | GENERIC_WRITE, 0, 0, CREATE_NEW, 0, 0);
driver = CreateFileA("\\.\COM15",  GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
if(driver == INVALID_HANDLE_VALUE)
{
qDebug() << GetLastError();
CloseHandle(driver);
return;
}
else
{
qDebug("Open");
qdebug() << driver;
return;
}

Если я зайду в управление устройством (в Windows 10), я не найду новое устройство COM15 в разделе Порты (COM и LPT). Зачем?
Неправильная функция, которую я использовал?
Какую функцию я должен использовать для создания драйвера, который позволяет мне создавать виртуальный COM-порт с использованием C ++?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]