Главная » Статьи о COM-портах » Управление мнемоническими именами

Управление мнемоническими именами

Управление мнемоническими именамиОперационная система Windows поддерживает до 255 асинхронных портов, каждый из которых получает мнемоническое имя, типа COMx. Не все они одинаково описываются во внутреннем представлении. Только первые девять имен COM-портов совпадают с названиями, доступными через «Диспетчер устройств», для остальных требуется специальный префикс. Обычно, пользователь, если только он не занимается отладкой программного обеспечения, не встречается с внутренним представлением последовательного порта. Гораздо чаще он соприкасается с рабочими моментами, связанными с эксплуатацией операционной системы. Установив устройство, пользователь ожидает, что оно будет правильно опознано и появится в «Диспетчере устройств» с необходимым мнемоническим именем. Когда устройство отключено, закономерно ожидать, что оно исчезнет из перечня поддерживаемых системой.

Ряд таких манипуляций иногда приводят к неожиданному результату: установка очередного адаптера последовательных портов завершается присвоением ему очередного имени. Так появляются в системе COM3, COM4, COM5 и так далее.

Этот процесс имеет свою логику: асинхронные порты не имеют внутренних запоминающих устройств, позволяющих выполнить их однозначную идентификацию. Поэтому тот адаптер (особенно, если речь идет о мультипортовой плате!), за которым при установке закреплен определенных набор имен, после отключения исчезает из системы вместе со своими именами. И номер следующего COM-порта будет выбран из списка свободных, пока таковые имеются в системе и не закончатся. Операционная система Windows надеется, что это либо никогда не произойдет, либо случится не сейчас.

Привязка мнемонических имен к адаптеру асинхронных последовательных портов осуществляется с использованием PnP-механизма, который учитывает номер PCI-слота, где обнаружена адаптер с UART, и значения Vendor ID/Device ID присвоенные ему.

Закономерно, что рано или поздно пользователь может столкнуться с ситуацией, когда ему не­об­хо­ди­мо использовать дополнительные последовательные порты с мнемоническими именами, начинающимися с COM3, а операционная система предлагает другие имена со стар­ши­ми но­ме­ра­ми, типа COM5, COM6 и т.п. Если в данной ситуации кроме дополнительного адаптера ис­поль­зу­ют­ся только интегрированные в SIO-контроллер бортовые порты COM1 и COM2, решение может быть получено путем редактирования полей PortName, FriendlyName и DeviceDesc для каждого пор­та в системном реестре.

Реклама на V-Comp:


21.11.2017