Цитата(aaarrr @ Nov 28 2016, 15:23)

Самфй простой способ - посмотреть названия ключей в HKLM/HARDWARE/DEVICEMAP/SERIALCOMM. Если не устроит, гуглите setupapi.
нашел вот такой пример с использованием setup.api
Код
HDEVINFO hDevInfo;
SP_DEVINFO_DATA DeviceInfoData;
SP_DEVICE_INTERFACE_DATA DeviceInterfaceData;
char dev_name[1024];
DWORD i;
GUID GUID_DEVCLASS_PORTS = {0x4d36e978, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18};
hDevInfo = SetupDiGetClassDevs(&GUID_DEVCLASS_PORTS, 0, 0, DIGCF_PRESENT | DIGCF_DEVICEINTERFACE);
if (hDevInfo == INVALID_HANDLE_VALUE)
{}// return 0;
DeviceInfoData.cbSize = sizeof(SP_DEVINFO_DATA);
DeviceInterfaceData.cbSize = sizeof(SP_DEVICE_INTERFACE_DATA);
for(i = 0; SetupDiEnumDeviceInfo(hDevInfo, i, &DeviceInfoData); i++)
{
SetupDiGetDeviceRegistryPropertyA(hDevInfo, &DeviceInfoData, SPDRP_FRIENDLYNAME, NULL, (UCHAR*)dev_name, sizeof(dev_name), NULL);
std::cout << dev_name << std::endl;
}
SetupDiDestroyDeviceInfoList(hDevInfo);
все порты находит, кроме виртуального, того который и нужен ..
хотя CLASS GUID соответствует: 4D36E978-E325-11CE-BFC1-08002BE10318