В цикле поочередно пытаюсь открыть все возможные компорты (CreateFile) из списка, полученного из вышеупомянутого поля реестра. Если возвращается INVALID_HANDLE_VALUE, порт недоступен. Если открытие прошло успешно, добавляю № порта в список доступных и закрываю порт. В результате имею список доступных на данный момент портов.