Microsoft

Solve MS-DOS Compatibility Mode problems on PCI IDE controllers with these troubleshooting tips

A Windows 98/Me computer running in MS-DOS Compatibility Mode uses the old (and slow) real-mode drivers. But finding out what's preventing the protected-mode drivers from loading is time-consuming. Greg Shultz cuts to the chase in this Drill Down.


A Windows 98/Me computer with a Peripheral Component Interconnect (PCI) Integrated Drive Electronics (IDE) hard disk controller using serialization between the two IDE channels can take a big performance hit if the OS cannot initialize the protected mode drivers. When this happens, the hard disk will run in MS-DOS Compatibility Mode, which means it’s using 16-bit, or real mode, drivers for both the file system and the virtual memory. To help you combat this issue, I’ll explain the troubleshooting steps for fixing MS-DOS Compatibility Mode problems for Windows 98 and Windows Me.

The problem in more detail
While the MS-DOS Compatibility Mode problem may appear to be caused by some sort of bug in the operating system, it’s actually the result of an automatically implemented workaround that allows Windows to continue to operate even though it can’t load the protected mode driver. More specifically, when Windows 98/Me is not able to properly initialize the protected mode driver for the IDE controller in the system, the operating system automatically loads a default real-mode driver and then places a value in the registry called NOIDE. This value will prevent the operating system from attempting to load the protected-mode driver, thus permanently dooming the system to using real-mode drivers for both the file system and the virtual memory.

As such, if you happened to miss, or misunderstand, the original error message, you might not know initially that the system is using real-mode drivers for both the file system and virtual memory. Once you begin your troubleshooting investigation into the cause of the system’s poor performance, however, you'd encounter a Performance tab in the System Properties dialog box like the one shown in Figure A (right-click My Computer and select Properties).

Figure A
When the operating system is using MS-DOS Compatibility Mode, it’s managing the hard disk and the CD-ROM with real-mode drivers, and performance will be degraded.


As you can see, the information on this tab indicates that on this particular computer, the operating system is using MS-DOS Compatibility Mode for both the hard disk and the CD-ROM drive. If you then went to investigate Device Manager, you’d see that both the primary and secondary IDE channels show an exclamation point (!) in a yellow circle underneath the Hard Disk Controllers category, as shown in Figure B.

Figure B
The Device Manager indicates a problem with the primary and secondary IDE controllers.


Attempt to reload the driver
As I mentioned, as long as the NOIDE value is in the registry, the operating system will not attempt to load the protected-mode driver. So the first thing to do is to get the operating system to reload the protected-mode driver. The reason for this approach is that a minor hiccup that occurred while the system was trying to load the driver could have caused the initial failure, so it’s best to test this theory first. To do so, you must remove the NOIDE value from the registry.

Warning
Working with the registry could affect other parts of the operating system. Use extreme caution when making changes to the registry.

To begin, select the Run command on the Start menu and launch the Registry Editor by typing Regedit.exe in the Open text box. Once you have the Registry Editor up and running, locate and double-click on the key HKEY_LOCAL_MACHINE. When this subtree is visible, open each of the following subtrees in succession:
  • System
  • CurrentControlSet
  • Services
  • VxD
  • IOS

Once you open the IOS key, scroll down through the values in that key until you locate the NOIDE value. When you do, right-click on it and select Delete from the shortcut menu. Now, close the Registry Editor and restart the system. When Windows restarts, it will attempt to initialize the protected-mode driver for the IDE controller. To see if it was successful, check the System Properties dialog box’s Performance tab and Device Manager tab. If it was, the file system and virtual memory will operate in 32-bit mode, and the Device Manager will not indicate a problem with the IDE channels.

Windows 98 shortcut
This problem is so common that Microsoft included a shortcut, in the form of an INF file, to remove the NOIDE value from the registry on the Windows 98 CD. To find it, insert the Windows 98 or Windows 98 Second Edition CD into your drive. When AutoPlay brings up the first screen, select the Browse this CD option. Then, use Windows Explorer to navigate to the Tools\Mtsutil folder. Once there, locate and right-click on the Noide.inf file. Select Install from the shortcut menu and the NOIDE value will be removed from the registry.

Checking for protected-mode support
If Windows failed to initialize the protected-mode driver for the IDE controller after removing the NOIDE value from the registry, then you must next investigate the protected-mode drivers for the individual drives. An IDE controller that requires serialization between the primary and secondary IDE channels also requires that both disk devices connected to it use protected-mode drivers in order to function correctly. If, for example, the hard disk is configured to use protected-mode drivers but the CD-ROM drive isn’t, then the IDE controller must ratchet down to the lowest common denominator—real-mode operation.

The easiest way to test for the existence of real-mode drivers for the CD-ROM drive being loaded via the Autoexec.bat and Config.sys files is by renaming these files so they aren’t processed at boot time. For example, you could rename them to Autoexec.out and Config.out. Then, edit the registry as I described earlier to remove the NOIDE value, and reboot the system.

If the problem was caused by the use of real-mode drivers for the CD-ROM drive, you’ll see that your hard disk is now operating with 32-bit mode drivers. You may also discover that the CD-ROM drive is no longer available. If this is the case, you’ll need to contact the CD-ROM drive manufacturer and see if you can get protected-mode drivers. If not, your only recourse is to get a new CD-ROM drive.

Check for corrupted drivers
If Windows failed to initialize the protected-mode driver for the IDE controller, the cause of the problem may be corrupt or defective protected-mode drivers for either the hard disk or the CD-ROM drive. To investigate this angle, you’ll want to either reinstall the existing protected-mode drivers or install updated drivers.

To reinstall the existing protected-mode drivers, access Device Manager by right-clicking on My Computer, selecting Properties, and choosing the appropriate tab. Then, open the either the CD-ROM or Disk Drives category, select the disk drive, and click the Remove button at the bottom of the Device Manager tab. Restart your system, and Windows will reload the existing protected-mode drivers.

To check for updated drivers, select either the CD-ROM or Disk Drives category, double-click the disk drive, select the Driver tab, and click the Update Driver button to launch the Update Driver Wizard. On the second screen, choose the Search For A Better Driver Than The One Your Device Is Using Now option, click Next, and then select only the Microsoft Windows Update check box. When you click Next, Windows will connect to the Windows Update site and check for an updated driver. If one is found, follow the onscreen instructions for downloading and installing the driver.

If Windows doesn’t find a new driver, it will inform you that the best driver is already installed for this device and prompt you to continue using it. Keep in mind that just because the Update Driver Wizard wasn’t able to find a new driver on the Windows Update site, that doesn't necessarily mean that one doesn't exist. You should double check with the drive manufacturer’s Web site.

Note
It’s extremely important to edit the registry to remove the NOIDE value after each troubleshooting step. If you don’t, Windows will not attempt to load the protected-mode driver, and you won't be able to tell if the step solves the problem.

Suspecting the IDE controller driver
When troubleshooting this problem, you should also consider the IDE controller driver. The driver could be corrupt and may need to be replaced. Before you explore this angle, it’s important to keep in mind that some IDE controller drivers aren’t designed for dynamic use. In other words, if you remove some IDE controllers from Device Manager and then reinstall them, the controller may fail to run in protected mode. These IDE controllers can only be properly set up to run in protected mode during the Windows installation procedure.

The initial problem may have been caused by a user messing around with Device Manager and inadvertently removing the IDE controller from Device Manager. If you really suspect that the removal and reinstallation of the IDE controller driver is causing the problem, then your only avenue to fix the problem is to reinstall the operating system. But if you’ve gone through all the other troubleshooting steps and have still failed to find a solution, you really have nothing to lose by experimenting with the IDE controller driver.

To begin, access Device Manager and open the Hard Disk Controllers category. Select the IDE controller icon and click the Remove button at the bottom of the Device Manager tab, and restart your system. When you do, Windows will reload the existing protected-mode drivers.

You can also check for an updated IDE controller driver. To do so, double-click on the IDE controller icon. When you see the IDE controller properties dialog box, select the Driver tab and choose the Update Driver button. You may also want to check with the manufacturer’s Web site to see if they have an updated IDE controller driver. In most cases, the IDE controller is built into the motherboard, so you’ll want to investigate the motherboard manufacturer’s Web site or the computer manufacturer’s Web site.

Other angles to explore
As a last resort, you might want to consider that the root of the problem may be caused by something other than the lack of serialization between the two IDE channels. Let’s take a look at some of the more common causes.

Boot sector virus
A boot sector virus attacks the Master Boot Record (MBR) on the hard disk. The virus is designed to corrupt the MBR by preventing the system from booting or to hamper the performance of the operating system. In the case of the latter, the MBR is altered in such a way that Windows is unable to load and use the protected-mode drivers. You’ll want to make sure that the system is completely virus free by running an up-to-date antivirus program.

If you’ve discovered a boot sector virus on the system and removed it with your antivirus program, you may need to manually rebuild the MBR. To do so, you’ll need a bootable floppy disk that contains the MS-DOS Fdisk and Sys utilities. After you boot from the floppy disk, type the command Fdisk /mbr. Once this operation finishes, type Sys C: to refresh the operating system files.

Hard Disk Configuration Utilities
Some hard disk configuration utilities, such as MAXBlast, Disk Manager, or EZ-BIOS can interfere with Windows' ability to use protected-mode drivers. If the system is using one of these utilities, you should remove it. Otherwise, you’ll be unable to run the hard disk in protected mode.

Windows 98 and large hard disks
The original Windows 98 was released prior to the advent of multigigabyte hard disks, and so it will automatically run in MSDOS Compatibility Mode if the hard disk is larger than 8 GB in size. (Neither Windows 98 Second Edition nor Windows Me has a problem with large hard disks.)

To fix the problem, you can obtain the Windows 98 Large IDE Update patch from the Windows 98 download page.

About

Greg Shultz is a freelance Technical Writer. Previously, he has worked as Documentation Specialist in the software industry, a Technical Support Specialist in educational industry, and a Technical Journalist in the computer publishing industry.

Editor's Picks