# Device Manager

Device Manager is a component of the Microsoft Windows operating system. It allows users to view and control the hardware attached to the computer. When a piece of hardware is not working, the offending hardware is highlighted for the user to deal with. The list of hardware can be sorted by various criteria.
For each device, users can:
* Supply device drivers in accordance with the Windows Driver Model
* Enable or disable devices
* Tell Windows to ignore malfunctioning devices
* View other technical properties
Device Manager was introduced with Windows 95 and later added to Windows 2000. On Windows 9x, Device Manager is part of the System applet in Control Panel. On Windows 2000 and all other Windows NT-based versions of Windows, it is a snap-in for Microsoft Management Console.
The executable program behind the Device Manager is devmgmt.msc.

## Types of icons
### Disabled device

A disabled device has either been manually disabled by a user or by some way of error. In Windows 95 through XP, this is denoted by a red X. In Windows Vista and Windows 7, this was replaced by a grey downward pointing arrow in the lower right-hand corner of the device's icon.

### Hardware not working properly

There are many reasons why hardware may not work properly. If Windows recognizes a problem with a device, it is denoted by a black exclamation point (!) on a yellow triangle in the lower right-hand corner of the device's icon.

### Hardware not recognized

Hardware may not be recognized if it is not installed properly or not compatible with the system. This is denoted by a yellow question mark in place of the device's icon.

### Device manually selected

A blue "i" on a white field in the lower right-hand corner of a Device's icon indicates that the Use automatic settings feature is not selected for the device and that the resource was manually selected. Note that this does not indicate a problem or disabled state.

## Error codes

Device Manager error codes are numerical codes, each accompanied by an error message, which help users determine what kind of issue Windows is having with a piece of hardware.
| Code | Meaning |
| 1 | This device has not been configured correctly. |
| 3 | The driver for this device may be corrupted, or the system may be running low on memory. |
| 10 | This device cannot start. |
| 12 | Not enough resources for the device. |
| 14 | The computer must be restarted for the device to work properly. |
| 16 | Windows can't identify all the resources this device requires. |
| 18 | Drivers for this device must be reinstalled. |
| 19 | Configuration information in Windows registry is damaged or corrupted for this device. |
| 21 | Windows is removing this device. |
| 22 | This device is disabled. |
| 24 | This device is not present, does not have all its drivers installed, or is not working properly. |
| 28 | The drivers for this device are not installed. |
| 29 | The firmware of the device did not give it the required resources. |
| 31 | Windows cannot load the drivers required for this device. |
| 32 | A driver for this device has been disabled. |
| 33 | Windows cannot determine which resources are required for this device. |
| 34 | Windows cannot determine the settings for this device. |
| 35 | The computer's firmware does not include enough information to properly configure and use this device. |
| 36 | This device is requesting a PCI interrupt but is configured for an ISA interrupt (or vice versa). |
| 37 | Windows failed to initialize the device driver for this hardware. |
| 38 | Windows cannot run the driver for this device because a previous instance of the driver exists. |
| 39 | Windows cannot load the driver for this device. The driver may be corrupted or missing. |
| 40 | Windows cannot access this hardware because its service key information in the registry is missing or corrupted. |
| 41 | Windows successfully loaded the device driver for this hardware but cannot find the hardware device. |
| 42 | Windows cannot run the driver for this device because there is a duplicate device already running in the system. |
| 43 | Windows has stopped this device because it has reported problems. |
| 44 | An application or service has shut down this hardware device. |
| 45 | This hardware device is not connected to the computer. |
| 46 | Windows cannot gain access to this hardware device because the operating system is in the process of shutting down. |
| 47 | Windows cannot use this device because it has been prepared for safe removal, but it has not been removed from the computer. |
| 48 | The driver for this device has been blocked from starting because it is known to have problems with Windows. |
| 49 | Windows cannot start new hardware devices because the system hive is too large and exceeds the Registry Size Limit. |
| 52 | Windows cannot verify the digital signature for the drivers required for this device. A recent hardware or software change might have installed a file that is signed incorrectly or damaged. |

## Device Types

Windows separates devices and their drivers by class types. Extra hidden and disconnected devices can be exposed through the devmgr_show_nonpresent_devices flag.
* USB Class devices: Peripherals that connect exclusively through the USB bus.
** Human Interface Devices: Devices used by the users to interface with the OS (eg. Touchpads, Pens, Mices and Keyboards)
** Printer devices: Drivers that contain printer information. Hidden category since Windows Vista.
** Imaging devices: Webcams and Scanners. A new webcam class driver was introduced in Windows 10 v1709.
** Biometric devices: Devices that read biometric data using Windows Biometric Framework. (eg. IR Webcams, Fingerprint sensor)
* PCI Class devices: Devices that connect to the PCI bus for high speed (eg. Graphics Card, Network card, Chipset)
** System devices: Peripherals that tie to the system, chipset or have no set category (eg. Intel Management Engine, Disk controller, ACPI events)
** Video and Audio Capture devices: Devices used to route audio/video streams (eg. Audio cards, TV Tuner cards, MIDI devices)
*** Audio inputs and outputs: Since Windows 8, audio ports have their own category.
* Non-PnP devices: Mostly software that need a driver installed to interface with the core kernel components. Hidden category since Windows 10.
* DCH devices: A new type of driver introduced in Windows 10 v1709 that can interface with Universal Windows Platform apps or Hardware Support Apps (HSA). The goal was to separate the core driver from the interfacing app. They are grouped under "Software components" (eg. Audio and Video drivers released post-2018)
* Bluetooth Profiles: Those are listed under "Bluetooth Virtual Devices" and aren't normally visible. Showing as "Bluetooth Peripheral Device" if no drivers are present.
* Other devices: This is not a category but a section where devices with missing drivers are grouped.

## Driverquery command

The driverquery command-line program generates lists of installed devices and drivers, similar to the Device Manager's output, which the user may view on-screen or redirect to a file. This is useful for note-taking and for reporting problems to remote third parties such as technical support personnel. The program has switches to control the output detail and format, including an /fo switch with csv parameter to generate output in comma-separated values format, suitable for importing into a spreadsheet application such as Microsoft Excel.