Troubleshooting Windows XP Device Manager error codes continued

Brien Posey expands on the error codes he described in his first article on Windows XP Device Manager. Here are more error code explanations, starting with error code 10, which relates to the device driver.

Part 1 | Part 2 | Part 3

Brien M. Posey
In the previous article, I explained how to spot error codes within the Device Manager. I then went on to talk about some possible causes of error codes 1 and 3. In this article, I will discuss some other error codes, beginning with code 10.

Error code 10

Error code 10 is displayed when a device driver is not started. A lot of people don't realize it, but Windows XP treats device drivers very similarly to services. In fact, device drivers can be stopped and started just like a service can. The reason why a lot of people don't know this is because Microsoft doesn't provide us with a console similar to the Service Control Manager that can be used for stopping and starting device drivers.

Getting rid of error code 10 is fairly simple, provided that you have the correct driver installed and that driver isn't corrupt. I recommend uninstalling the device's driver and installing a freshly downloaded version prior to attempting the following tactic.

If you still can't get the device driver to start, open a Command Prompt window and enter the DRIVERQUERY command. As you can see in Figure A, this command provides you with some basic information about each device driver that is installed in the system. You should scroll through this list until you locate the device driver that is giving you trouble. Once you have located the correct driver, make note of its Module Name.

Figure A

Now, what the DRIVERQUERY command doesn't tell you is whether or not the drivers are running. To see the status of each device driver, enter the DRIVERQUERY command again, but this time append the /V switch. This will cause DRIVERQUERY to run in verbose mode. In Figure B, you'll see that this command tells you which drivers are running and which ones have stopped.

Figure B

You can use this information to verify what the Device Manager is telling you. Assuming that DRIVERQUERY reports a device as being stopped, you can use the NET command to start it. For example, Figure B shows that the Windows Driver Foundation Kernel has stopped. This is normal for my system, but let's pretend that the driver is having problems and needs to be manually started.

First, I would have to record the driver's module name, which is WudfRd. I can then plug this module name into the NET command, along with the start parameter. The actual command looks like this:

In this particular case, I receive an error message telling me that the driver can't start because the device is disabled, as shown in Figure C. Even so, this gives me something to go on. If this were a real-world problem, I could open the Device Manager, enable the offending device and then re-enter the NET START WudfRd command. That should make the problem go away.

Figure C

Error code 12

Error code 12 is one of those errors I hope you won't ever receive, because fixing the problem can be rather difficult. There are two different things that can trigger this error. The most common problem is a resource conflict. Essentially, this means that two hardware devices have been assigned overlapping resources. The overlapping resources might be IRQs, DMAs or even memory address ranges.

Newer systems that are fully plug-and-play compliant and use only PCI-based devices typically do not experience this problem. However, some systems still include one or more ISA expansion slots. Any time that ISA comes into the picture, hardware resource conflicts can become an issue. PCI-based systems are not exempt from the problem though. If someone has attempted to manually configure the resources that PCI devices are using, then a resource overlap is possible.

Troubleshooting and correcting resource overlaps is a very tedious process. For a quick and dirty fix, you can disable one of the devices that is using overlapping resources. Then the other device that requires those resources will usually begin to function. If you are looking for a more in-depth, step-by-step solution to this error, check out my article on manually resolving hardware resource conflicts later this month.

A corrupt Multiprocessor System (MPS) table can also cause error code 12. If the MPS table is corrupt, it can cause the BIOS to allocate insufficient resources to hardware devices. I have had a really tough time locating information regarding a solution to this problem. From what I have been able to tell, though, it appears that an MPS table can become corrupt as a result of a damaged hardware abstraction layer (HAL). If that is the case, then reinstalling Windows may fix the problem. If anyone knows for sure how to fix a corrupt MPS table, please send me an email.

Error code 14

Error code 14 is by far the simplest Device Manager error that you will ever encounter. This error simply indicates that the device cannot function properly until you reboot the system.

So now you have three more Device Manager errors and their solutions to work with. In the final article of this series , I will continue this discussion by explaining the causes of some other common Device Manager errors, and how to fix them.


Intro plus error codes 1 and 3
Error codes 10, 12 and 14
Error codes 16, 18, 19, 21, 22, 24 and 28

Brien M. Posey, MCSE, has received Microsoft's Most Valuable Professional Award four times for his work with Windows Server, IIS and Exchange Server. He has served as CIO for a nationwide chain of hospitals and healthcare facilities, and was once a network administrator for Fort Knox. You can visit his personal Web site at www.brienposey.com.

Dig Deeper on Windows legacy operating systems