In part one of this series, I explained the differences between real mode and protected mode drivers. In that article, I explained how Windows tends to function much better with protected mode drivers than it does with real mode drivers. In this article, I’ll discuss some techniques you can use to troubleshoot protected mode drivers. If you’re still depending on real mode drivers and are having trouble with your system, then you’ll be happy to know that part three will be dedicated to troubleshooting real mode drivers.
Before we begin
Before we get started with the troubleshooting process, let’s go over a few things. In part one, I told you to first download and install new device drivers for the malfunctioning hardware. In this article, I’m assuming that you’ve already done that. Before beginning the troubleshooting process, you should also temporarily disable any commands in your Config.sys or Autoexec.bat files. When you disable the commands, you’re ensuring that nothing you’ve loaded in real mode will be adversely affecting protected mode. Sometimes totally unrelated devices can cause problems with each other when device drivers or memory managers are loaded in real mode.
The easiest way to temporarily disable these commands is to open the Microsoft System Information utility and then select the System Configuration Utility from the Tools menu. On the General tab, select the Selective Startup radio button. When you do, you’ll be able to select the files that are processed during the boot process. Simply disable Config.sys and Autoexec.bat as shown in Figure A, and click OK. Then, reboot your machine and see if the problem still exists. If it does, reenable the Config.sys and Autoexec.bat files and continue with the troubleshooting process. Should the problem with your device go away, then the trouble lies somewhere within the real mode. In that instance, the third article in this series will be more beneficial to you in finding and fixing your problem.
|Try disabling the Config.sys and Autoexec.bat files temporarily.|
Meet the Device Manager, your new best friend
Once you’ve verified that nothing in the real mode is causing the problem, it’s time to get down to the heart and soul of the troubleshooting process. The majority of the troubleshooting is done through the Device Manager. To access the Device Manager, open Control Panel and double-click on the System icon. You’ll then see the System Properties sheet. Select the Device Manager tab, and you’ll see a listing of every device within your system.
Most of the time, this list will highlight any device that’s malfunctioning or has been disabled. For example, in Figure B, you can see a PCI Ethernet Controller has been disabled. If any hardware device were malfunctioning, it would be displayed in a similar manner, only with a different icon.
|The Device Manager highlights disabled and malfunctioning drivers.|
One word of caution: Although I mentioned that the Device Manager indicates malfunctioning devices, it is not necessarily 100 percent accurate. Occasionally, a device will malfunction, but because of the type of malfunction, the Device Manager will not recognize that a problem exists. Another inaccuracy may occur if a device malfunctions, but the failure is a result of another malfunctioning device that the Device Manager doesn’t display. For example, suppose the Device Manager shows a network card malfunctioning. Most of the time, the network card will be the source of the problem. However, if you’ve checked out the system and can’t find anything wrong with the network card, then maybe another component, such as the video card, might be causing the problem.
There are several ways this situation could happen. For example, the video card could be physically occupying a resource, such as an IRQ or a base memory address, that the network card needs. Another possibility is the video driver somehow interferes with the network card’s driver. One other possibility is that someone could have incorrectly assigned resources to one of the two devices manually.
With that said, let’s take a look at the anatomy of a malfunctioning device. Select a malfunctioning device and click the Properties button. By default, the properties sheet’s General tab is selected. The General tab displays a summary of whether or not the device is working properly (as far as Windows can tell). This tab also contains two check boxes that you can use to disable the device.
Most of the devices in your system will also have a Driver tab and a Resources tab on their properties sheets. The Drivers tab is used for viewing a driver’s manufacturer, version, or date. There’s also a button on the tab you can use to update the driver.
The Resources tab is where you can look to see what resources that the device is actually using. If the device is malfunctioning, you can usually get some type of information about where the problem is located from the Resources tab. For example, in Figure C, you can see that my NIC card is using IRQ 11 and view the card’s input/output ranges. You can also see that Windows says that the card is not conflicting with any other devices. If there was a conflict, you’d see a message that said something like, “IRQ 11 is conflicting with a network card.”
|The Resources tab (on the device’s properties sheet) allows you to manually adjust the device’s settings.|
If a conflict does exist, you can sometimes get rid of the conflict by deselecting the Use Automatic Settings check box. You may then select the setting that needs to be changed and click the Change Setting button. Most of the time, doing so will allow you to change the offending value to something that doesn’t conflict. For example, if IRQ 9 was conflicting with my network card, I might try changing it to IRQ 5 if that IRQ wasn’t in use by another device.
Although this process sounds simple, you can run into problems. Some device drivers won’t allow you to manually adjust the settings. Likewise, some devices will only work with specific address ranges or interrupts. For example, a device may only work with IRQ numbers 3, 5, and 7. What do you do if you encounter such a device but all of the IRQs that it will work with are already taken? You tweak the settings of another device. For example, if your network was using IRQ 5, you might be able to switch it to IRQ 10, thus freeing up IRQ 5 for the malfunctioning device. You’ll have to use a similar technique if a device doesn’t allow you to manually adjust its settings. If this happens, try adjusting other devices to make way for the malfunctioning device.
Occasionally you will run into a device that should use a specific memory range, yet the device simply won’t work in that memory range. In such a situation, all you can do is play around with the device and experiment with other memory ranges.
To plug and play or not to plug and play
Another problem you run into when trying to get a driver to work is the system may be using a combination of plug and play devices and non-plug and play devices. This is not necessarily a bad thing. Plug and play devices will work fine along side non-plug and play devices as long as the system is set up properly.
If you’re having trouble with a specific device and you just can’t seem to get the device working, I recommend using the following technique to get all of the hardware working. Before I share this technique with you though, there are a few words of caution that I need to give you. First, make sure that you have a full system backup of the machine in question. While this technique normally works well, I have seen it go crazy a time or two. Second, make sure that before you begin using the technique, go onto the Internet and download the latest drivers for each device on your system. Third, make sure you have another computer on hand with Internet access; just in case anything goes horribly wrong and you need to download a file or contact tech support. Finally, this technique involves disassembling the system. Therefore, any time that the cover is off the computer, make sure that the computer is unplugged and that you and your work surface are properly grounded.
With that said, you can begin the procedure by opening the Device Manager. Select the first hardware device on the list (don’t worry about disk drives, CD-ROM drives, and system devices such as timers or interrupt controllers). Once you’ve selected the device, click the Remove button to delete it from the system. Depending on what the device is, your system may immediately try to rediscover it. If this happens, don’t let the system reinstall it. Now, go through the Device Manager and remove the rest of the devices. Take care when removing network cards, though. Verify the settings before removing the card, and document the computer’s host name, IP address, etc.
When you’ve removed all of the devices from Device Manager, shut down Windows. Now, unplug the computer and open the case. Physically remove all hardware devices except for those necessary for the boot process. For example, you would want to remove things like sound cards, network cards, and fire wire cards. However, you would want to leave things like SCSI controllers, hard drives, CD-ROM drives, and your video card. Now, boot the system and allow Windows to discover your video card. When Windows detects the video card, supply the driver that you’ve downloaded.
At this point, shut down the system and insert a non-plug and play device (if you have one). Boot the system and allow Windows to discover this device. Supply the driver and make sure that the Device Manager’s Resource settings actually match the card’s physical configuration. For example, if the card is an older type and uses jumpers to set it to IRQ 9, then make sure that Windows is also set to use IRQ 9 for the card. This process often takes some manual adjustment of the settings.
Now, reboot the system and verify that the device is working. Shut down Windows and repeat the process with the next device. It’s very important to insert the non-plug and play devices first. Remember that Windows can configure the plug and play devices so as not to interfere with existing devices, but you don’t have that luxury with non-plug and play devices. Just make sure to boot Windows, supply the driver, and make sure that the device is functional after you install each device.
I hope that my quick tips on using the Device Manager to get a malfunctioning device operational again will help you find and fix your protected mode driver problems. Just remember my words of warning if you are going to attempt the troubleshooting techniques for both plug and play and non-plug and play devices. I’ll continue the protected mode/real mode driver discussion in part three of this series by explaining how to fix problems with real mode device drivers.