Почистване на заети COM портове

Всеки път, когато свързвате нова COM устройства или USB устройства (важи за модем, мобилни телефони, Bluetooth, сериен към USB преобразуватели и др.), Windows го открива чрез Plug-n-Play механизма и му присвоява определено COM номер на порта в обхвата на 1 до 255. Когато свързвате отново същите устройства, COM порта, предварително запазен за него, се възлага на него. Новите устройства получават първия номер на незает COM порт. Не са редки случаите, когато външните устройства създават няколко COM порта едновременно, когато са свързани (в моя случай след свързване на Bluetooth адаптер, 10 !!!! нови COM портове се появиха в системата веднага).

Редица приложения (обикновено доста древни) са в състояние да адресират само двуцифрени номера на COM порта, отказвайки да работят с COM100 и по-нови. В най-"работещите" версии такива програми коректно работят само на портове с COM1-COM9. Какво да направите, ако свързаното устройство получи голям брой? Мога ли да върна нумерацията на резервираните COM портове и да изтрия назначените портове? Нека се опитаме да разберем примера на Windows 7.

Съдържание:

  • Променете номера на COM порта за конкретно устройство
  • Нулирайте връзките на COM порта през системния регистър

По правило не е възможно да се смени издаденият COM порт на друг в свойствата на оборудването, тъй като системата пише, че всички "ниски" COM портове вече се използват (в употреба).

Променете номера на COM порта за конкретно устройство

На първо място, трябва да опитате да предефинирате ръчно номера на COM порта за конкретно COM устройство. Да предположим, че необходимият COM порт вече е взет и искаме да опитаме да го освободим.

  1. Стартирайте диспечера на устройства по този начин:задайте devmgr_show_nonpresent_devices = 1
    стартирайте devmgmt.msc
  2. В менюто на конзолата изберете изглед->Показване на скрити устройства.
  3. Разширете клона Пристанища (Com & LPT) и в списъка намерете устройството, на което е присвоен желаният COM порт (бледа икона означава, че този COM порт е присвоен, но в момента това устройство не е свързано). Кликнете с десния бутон върху него и изберете Uninstall
  4. Освободен COM порт може да бъде зададен на друго устройство. Намерете устройството си в същия клон, отворете прозореца със свойствата му (Имоти). След това отидете на раздела порт Настройки и натиснете бутона напреднал. В падащия списък изберете неизползван COM порт.

Горният метод не винаги освобождава зает COM порт. В този случай ще трябва да прибягвате до редактиране на системния регистър.

Нулирайте връзките на COM порта през системния регистър

Информацията за използваните COM портове се съхранява в ключа на системния регистър. CommDB в секцията HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ COM Арбитър на име

  1. Отворен редактор на системния регистър (регентство) и отидете на посочения клон.Важно е! Горещо препоръчваме първо да архивирате този клон на системния регистър (Файл -> износ). В случай, че нещо се обърка, можете да се върнете към първоначалната конфигурация на портовете..

  2. Стойност на параметъра ComDB определя списъка на COM портове, запазени в системата, в двоичен формат. Всеки бит определя състоянието на съответния порт (от 1 до 255). Например, ако трябва да оставим резервация само за COM3, шестнадесетичната стойност на ComDB ще бъде 04 (0000 0100)Важно е! Бъдете изключително внимателни, в никакъв случай не добавяйте допълнителни байтове към този параметър, в противен случай системата може да започне да пада в BSOD.
  3. Ако трябва напълно да нулирате всички COM връзки, променете стойността на клавиша ComDB на 0.забележка. В раздела HKEY_LOCAL_MACHINE \ HARDWARE \ DEVICEMAP \ SERIALCOMM можете да видите списък на COM портове, свързани към системата.
  4. В клон HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Портове съдържа списък на присвоените COM портове. Всички ненужни портове могат да бъдат изтрити (в нашия пример ще оставим само COM3 и ще изтрием останалите.
  5. Изключете цялото оборудване и рестартирайте компютъра.
  6. След рестартиране включете оборудването в желания ред (инсталирайте отново USB-серийни преобразуватели и т.н.). Всички открити COM портове се разпознават автоматично от системата и серийните номера на портовете ще им бъдат присвоени..