Windows XP Phantom USB/Bluetooth COM Port Deletion
Windows XP uses a sequential numbering scheme to assign port numbers to virtual COM
ports, which due to a bug in the way ports are assigned and deleted, can result in the
assignment of silly numbers like COM 67, etc. This in turn often creates problems with
certain applications that only recognise a limited range of COM port IDs (20 is an often
seen limit). You may use RegEdit to reset this value—however it is an all or nothing
process, I.e. devices you wish to keep will have to be reinstalled.
NOTE: Make a backup of the registry prior to taking any of the following steps.
You edit the registry at your own risk.
The first step in removing the phantom ports is to uninstall all USB/Bluetooth COM ports
using the Windows Device Manager. Unfortunately XP does not reset the COM Name
Arbiter registry entry when you delete ports with the Device Manager—this is the root of the
problem….
The process described below explains how to reset the COM Name Arbiter entry to bring
things back down to earth, and suggests two other registry keys that may also be edited to
provide additional clarity to the operating system.
Run RegEdit—then navigate to:
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/COM Name Arbiter
There will be a value key named COMDB, and if you are experiencing the crazy high COM
port numbers the value will be FF FF B3 00 or something like that. This is a bit map of the
assigned COM port numbers, a set bit indicates an assigned port number. The bits in each
byte are interpreted in classic right to left fashion where bits 0..7 of the first byte represent
COM 1..8, bits 0..7 of byte two are COM 9 to COM 16, etc. This is somewhat
counterintuitive and a bit (no pun intended) “backwards”.
Reset the value to represent the number of physical COM ports on you machine. If you
have one port the value should be 01 00 00 00 (bit 0 of the first byte is set), if two then set
the value to 03 00 00 00 (bits 0 and 1 of the first byte set).
You may also want to clean any non-standard or unwanted virtual serial ports from these
registry keys:
HKEY_LOCAL_MACHINE/HARDWARE/DEVICEMAP/SERIALCOMM
HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/Ports
The first contains the descriptive strings and port names that appear in some dropdowns
and system utilities--the second contains a list of all I/O ports, apparently ever named by
the system.
These latter entries seem to have no effect on anything that I can find, not even the device
lists offered by any XP dialogs or utilities. It must be some leftover Windows NT thing.
Restart your computer and reinstall your desired USB and Bluetooth serial emulation
devices, they will now have more sensible numbers.