Java-клиент не перечисляет виртуальные последовательные порты, созданные com0com
Я установил эмулятор виртуального последовательного порта com0com на Windows10 .
Создан набор виртуальных портов с именами CNCA0 и CNCB0. Диспетчер устройств Windows успешно показывает порты:
Я написал простую Java для вывода списка всех последовательных портов, но он показывает встроенные порты, а не виртуальные:-:-
static void listPorts()
{
java.util.Enumeration<CommPortIdentifier> portEnum = CommPortIdentifier.getPortIdentifiers();
while ( portEnum.hasMoreElements() )
{
CommPortIdentifier portIdentifier = portEnum.nextElement();
System.out.println(portIdentifier.getName() + " - " + getPortTypeName(portIdentifier.getPortType()) );
}
}
static String getPortTypeName ( int portType )
{
switch ( portType )
{
case CommPortIdentifier.PORT_I2C:
return "I2C";
case CommPortIdentifier.PORT_PARALLEL:
return "Parallel";
case CommPortIdentifier.PORT_RAW:
return "Raw";
case CommPortIdentifier.PORT_RS485:
return "RS485";
case CommPortIdentifier.PORT_SERIAL:
return "Serial";
default:
return "unknown type";
}
}
Выход:-
COM1 - Serial
COM2 - Serial
LPT1 - Parallel
При дальнейшей отладке я проверил журналы установки для COM0COM в setupapi.dev.log и обнаружил эту ошибку:-
!! inf: Не удалось загрузить INF 'C:\Windows\System32\DriverStore\FileRepository\com0com.inf_amd64_neutral_bf841eecb74db82e\oem224.inf'.!! inf: Ошибка 2: система не может найти указанный файл.!! ndv: Не удалось импортировать пакет драйверов для нового устройства... установка драйвера NULL.!! ndv: ошибка 0xe0000203: не выбран драйвер для набора информации об устройстве или элемента.
Когда я проверяю дальше, упомянутые файлы присутствуют в указанной папке.. и я работаю от имени администратора. Понятия не имею, что делает файл недоступным...