Можно просто перебором все найти. char port[8];
for(int i=1; i<256; i++)
{
sprintf(port, "COM%d", i);
HANDLE hCOM;
hCOM=CreateFile(port,0,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
if (hCOM!=INVALID_HANDLE_VALUE)
{
// Порт есть
CloseHandle(hCOM);
}
else
{
if(GetLastError() != 2)
{
// Порт тоже есть
}
}
}