How to fix "Windows cannot initialize the device driver for this hardware. (Code 37)"
I experienced issues connecting my smartphone to my Windows 7 PC ever since I replaced my Samsung Galaxy Note II with the Motorola Moto G.
Nothing happened whenever I plugged the USB cable in and connect the phone to it. The workaround that I came up with was to open Devices and Printers, right-click on the device, select troubleshoot, and wait until Windows would install the required drivers on the system.
The strange thing was that I had to do so each time and not only once. When I checked the phone's properties with a right-click, it would list "Windows cannot initialize the device driver for this hardware. (Code 37)" as the device status.
A search on the Internet reveals hundreds if not thousands of pages with workarounds and fixes for the solution, and users who can't get these fixes to work on their system.
Common suggestions include uninstalling drivers, deleting UpperFilters and LowerFilters Registry values, using System Restore, or uninstalling all USB devices.
If you are unlucky, you land on a page that is trying to sell you a software to fix those errors on your system.
While I cannot claim that the following method works for all devices the error is displayed for, it worked for my situation. It fixed the issue that I was experiencing and resulted that the phone was detected properly whenever I connected it to the PC.
Solution
All I did was install the device driver offered by Motorola for the Moto G. There is a downside to that but more about that later. Once installed, the Moto G was detected properly by the PC so that I was able to transfer files or back up data on it.
Now, the downside is that Motorola's Device Manager needs to run in the background for that to work which is not ideal.
There is another solution, one that is not that obvious as it can be overlooked easily. Here is what you need to do:
1. Open the Devices and Printers module of the Control Panel. Tap on the Windows-key, type devices and printers, and select the result from the listing.
2. Right-click on the device that is not detected properly and select the troubleshoot option.
3. Windows attempts to find a solution for the issue and displays it afterwards. In this case, it displays an option to reinstall the device driver. Select apply this fix from the available options.
4. The next page is the important one. If you just click next on "allow driver updates to be installed", you will only fix the issue for the current session but not permanently.
You need to click on view and change settings to fix it once and for all.
5. On the next page, switch from "never install driver software from Windows Update" to "Yes, do this automatically (recommended)".
6. Save the changes and click next on the page. Windows will then display the troubleshooting results. If everything went well, all issues displayed should be listed as fixed.
Closing Words
If you are experiencing error code 37 issues in Windows when connecting devices via USB, you may want to try the troubleshooting option first as it offers the best result when it works.
If that does not work, download and install the latest drivers for the device from the manufacturer website.
don’t add a solution if it not work 100%
This didn’t work for me. Ended up being as simple as uninstalling from Device Manager and then Scan For Changes.
Thank you very much i was pulling my hair out for days never thought of the simple way your very kind to share your find
Drivers are one of the biggest pains in Windows. Windows 7 either auto-installs everything or nothing. There’s no “let me choose” option.
Don’t get me started about compatibility. I mean, there are wrappers for XP drivers to run on Linux but not on Windows 7. And if you run Win 7 and you’ve got old hardware, you’re actually better off running a Linux driver on Windows 7 than you are an XP driver…. because there’s at least a compatibility layer available for that. No-one on the whole planet has released a compatibility layer for XP drivers to work on Win 7. Further reading: http://www.elpauer.org/2011/03/linux-drivers-running-on-windows/comment-page-1/
Microsoft’s solution? Virtualise the entire OS. That’s efficient, sustainable, and what people want :/
Currently my driver issue is that Windows will either recognize two Bluetooth dongles, or two game controller receivers. Not one of each, which is what I’ve got. Yay, Windows :@
Some days ago I had the same problem with my Bluetooth adapter (light went out, turned on and had the problem). In my case I couldn’t make it work with the official driver, didn’t matter how much I uninstalled and even if I deleted the default drivers. I was able to fix it with a unofficial bluetooth driver. It was unstable, but after that, I was able to install the official driver without the code 37 error.