Device Manager shows the message “This device is not working properly because Windows cannot load the drivers required for this device. (Code 31)” on a network adapter when Windows cannot load the driver files at all. Unlike Code 10, where the driver loads but fails to start, Code 31 means the driver never loaded.
The fix, in order
Update the driver. In Device Manager, right-click the adapter and choose Update Driver. If Windows finds nothing, check for optional driver updates under Windows Update.
Uninstall the device and scan for hardware changes. Right-click the adapter, choose Uninstall device, then choose Action, Scan for hardware changes, so Windows reinstalls it cleanly.
Install the driver from the maker. Download the latest driver from the computer or adapter maker's official support site, using another device if this PC has no network, and install it from a USB drive.
Roll back the driver. If the problem started after an update, open the adapter properties, go to the Driver tab, and choose Roll Back Driver.
Install both parts of a combo card. Some Wi-Fi and Bluetooth combo cards need their wireless and Bluetooth drivers installed together. Installing only one half can leave the other half showing Code 31.
Run a System File Checker scan. Open Command Prompt as administrator and run sfc /scannow. Damaged system files can prevent drivers from loading.
Only download drivers from the maker's official support site. Driver download portals and driver updater tools are a common source of malware, and the wrong driver can make a Code 31 worse.
If it still happens
If Code 31 persists with the correct driver from the maker, the driver files or the Windows driver store may be damaged. Try a clean install of the driver package, and if that fails, test with a USB network adapter to confirm whether the built-in hardware is at fault.
Common questions
What does Code 31 mean? It means Windows cannot load the drivers required for the device. The driver files are missing, damaged, or incompatible, so the device cannot work at all.
What is the difference between Code 10 and Code 31? Code 10 means the driver loaded but could not start the device. Code 31 means the driver could not even load. Both are usually fixed by reinstalling the correct driver from the maker.