Windows – Use different drivers for multiple USB devices with identical Vendor and Product IDs


I have two USB Bluetooth adapters that both identify themselves with the Vendor ID 0x0A12 (Cambridge Silicon Radio Ltd.), and the Product ID 0x0001. They have different 'REV' values listed under Hardware Ids in the details tab of Device Manager, which seems to correspond to the bcdDevice field in USB Device Viewer from the Windows 10 WDK. The devices are also on different Hubs and Ports, one being attached to the front of my computer and the other to a hub on my monitor.

I'd like to use a different driver with each adapter; the standard Windows Bluetooth driver with one, and a wireless game controller driver with the other. The Windows driver is installed automatically when I connect the adapters, but when I install the game controller driver on one of the adapters, the other adapter starts using that driver as well, leaving me with no Bluetooth functionality.

How can I get Windows to use a different driver for each adapter?

Best Answer

After a lot of trial and error, and messing with drivers in Device Manager (something I can't recommend to anyone who doesn't enjoy remoting in to the machine right to them to reinstall their input device drivers) I managed to find a solution that survives device replugging and possibly reboots (although I haven't tested that).

Find the device in Device Manager that you want to switch to a different driver, right click it, and choose 'Update Driver Software...', 'Browse my computer for driver software', then 'Let me pick from a list of device drivers on my computer'. From there you should see a list of drivers that Windows can use with that hardware. Though mine all had names like 'Generic Bluetooth Adapter' instead of a name that would indicate which driver it was, I was able to find the right driver simply by trying each option until Windows detected the adapter and showed the Bluetooth icon in the system tray (In my case, I was switching from the game controller driver to the generic Windows one). After that, each device should be using its own driver.

I'm running Windows 10, but had a friend on Windows 7 verify that the process was the same for him. Windows 8 is presumably the same as well.

Related Question