При приєднанні абсолютно нового COM пристрою або USB пристрою, Windows виявляє завдяки Plug-n-Play і привласнює йому номер COM порту в діапазоні від 1 до 255. Якщо ж ви підключаєте пристрій ще раз, йому прикріплюється той же, зарезервований за ним раніше COM порт . Якщо ж ви підключаєте ще одне нове пристрій, то йому призначається інший незайнятий номер COM порту.
Деякі програми (частіше старі), здатні працювати тільки на двозначних номерах COM портів, і не працюють з COM100 і більш. Деякі дуже давні програми працюють тільки портами з COM1-COM9. Як вчинити, якщо пристрій одержав непотрібний COM порт? Чи можна видалити номер зарезервованого COM порту?
Зміна номера COM порту для програми або пристрою
В першу чергу варто спробувати вручну перевизначити номер COM порту для певного COM-пристрої. Припустимо необхідний COM порт вже зайнятий, і ми хочемо його спробувати його звільнити.
- Запустимо диспетчер пристроїв (Device Manager) таким чином: set devmgr_show_nonpresent_devices = 1
start devmgmt.msc - В меню консолі виберемо View -> Show Hidden Devices.
- Розгорніть гілку Ports (COM LPT) і в списку знайдіть пристрій, якому призначено потрібний COM порт (бліда іконка означає, що даний COM порт призначений, але зараз цей пристрій не підключено). Клацніть по ньому ПКМ і виберіть Uninstall
- Звільнений COM порт може бути призначений інший пристрій. Знайдіть в цій же гілці свій пристрій, відкрийте вікно його властивостей (Properties). Потім перейдіть на вкладку PortSettings і натисніть кнопку Advanced. У випадаючому списку виберіть невикористаний COM порт.
Наведена вище методика не завжди дозволяє звільнити зайнятий COM порт. В цьому випадку доведеться вдатися до редагування реєстру.
Скидання прив'язок COM портів через реєстр
Інформація про використовувані COM портах зберігається в ключі реєстру CommDB в разделеHKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ COM Name Arbiter
Важливо! Будьте гранично уважними, ні в якому разі не додайте в цей параметр додаткові байт, інакше система може почати падати в BSOD.
Примітка. У розділі HKEY_LOCAL_MACHINE \ HARDWARE \ DEVICEMAP \ SERIALCOMM можна побачитися список COM портів, підключених до системи.