Вся нужная вам информация лежит
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\FTDIBUS
там находится дерево вида
VID_0403+PID_xxxx+nnnnnnnnnnnnnnn
внутри каждого есть ключ
0000\Device Parameters\PortName вот там и лежит COM порт
вам надо только разобраться как серийный номер преобразуется в nnnnnnnnnnnnn
(в старых девайсах без еепром туда кодировлось место на USB)
Да еще в ключе
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\COM Name Arbiter\ComDB
хранится битовая маска занятых COM портов (их может быть максимум 256 судя по всему)
Цитата(CupuyC @ Feb 8 2008, 15:47)

Попытался по другому пойти - запустил по циклу ф-цию:
Код
hCOM=CreateFile( ComPort, GENERIC_WRITE|GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED, NULL);
В цикле менялось значение стринга ComPort - СОМ1, СОМ2,.....СОМ25.
Результат
Код
hCOM!=INVALID_HANDLE_VALUE
А вы посмотрите код ошибки, может вы получаете отказ из-за того что устройство вами же и открыто через директ драйвер.