Очищення зайнятих com портів

При приєднанні абсолютно нового COM пристрою або USB пристрою, Windows виявляє завдяки Plug-n-Play і привласнює йому номер COM порту в діапазоні від 1 до 255. Якщо ж ви підключаєте пристрій ще раз, йому прикріплюється той же, зарезервований за ним раніше COM порт . Якщо ж ви підключаєте ще одне нове пристрій, то йому призначається інший незайнятий номер COM порту.

Деякі програми (частіше старі), здатні працювати тільки на двозначних номерах COM портів, і не працюють з COM100 і більш. Деякі дуже давні програми працюють тільки портами з COM1-COM9. Як вчинити, якщо пристрій одержав непотрібний COM порт? Чи можна видалити номер зарезервованого COM порту?

Зміна номера COM порту для програми або пристрою

В першу чергу варто спробувати вручну перевизначити номер COM порту для певного COM-пристрої. Припустимо необхідний COM порт вже зайнятий, і ми хочемо його спробувати його звільнити.

  1. Запустимо диспетчер пристроїв (Device Manager) таким чином: set devmgr_show_nonpresent_devices = 1
    start devmgmt.msc
  2. В меню консолі виберемо View -> Show Hidden Devices.
  3. Розгорніть гілку Ports (COM LPT) і в списку знайдіть пристрій, якому призначено потрібний COM порт (бліда іконка означає, що даний COM порт призначений, але зараз цей пристрій не підключено). Клацніть по ньому ПКМ і виберіть Uninstall
  4. Звільнений COM порт може бути призначений інший пристрій. Знайдіть в цій же гілці свій пристрій, відкрийте вікно його властивостей (Properties). Потім перейдіть на вкладку PortSettings і натисніть кнопку Advanced. У випадаючому списку виберіть невикористаний COM порт.

Наведена вище методика не завжди дозволяє звільнити зайнятий COM порт. В цьому випадку доведеться вдатися до редагування реєстру.

Скидання прив'язок COM портів через реєстр

Інформація про використовувані COM портах зберігається в ключі реєстру CommDB в разделеHKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ COM Name Arbiter

  • Значення параметра ComDB в довічним форматі визначає список COM портів зарезервованих в системі. Кожен біт визначає стан відповідного порту (від 1 до 255). Наприклад, якщо нам потрібно залишити бронювання тільки для COM3, hex значення ComDB дорівнюватиме 04 (0000 0100)

    Важливо! Будьте гранично уважними, ні в якому разі не додайте в цей параметр додаткові байт, інакше система може почати падати в BSOD.

  • Якщо потрібно повністю скинути все прив'язки COM, змініть значення ключа ComDB на 0.

    Примітка. У розділі HKEY_LOCAL_MACHINE \ HARDWARE \ DEVICEMAP \ SERIALCOMM можна побачитися список COM портів, підключених до системи.

  • У гілці HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Ports міститься список призначених COM портів. Всі непотрібні порти можна видалити (в нашому прикладі ми залишимо тільки COM3 і видалимо інші.
  • Вимкніть все обладнання і перезавантажте ПК.
  • Після перезавантаження включите обладнання в потрібному порядку (переустановите конвертори USB-to-serial і т.д.). Всі виявлені COM-порти автоматично визначатися системою і їм будуть послідовно виділені номери COM портів.
  • Схожі статті