
Resolving MS-DOS Compatibility Mode problems on PCI IDE controllers
Please see our disclaimer page before attempting this. Click here!
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 some troubleshooting steps to correct MS-DOS Compatibility Mode problems in 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 isn't 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.
If you happened to miss, or misunderstand, the original error message, you might not know 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
sheet like the one shown in Figure A. (To get to the System Properties sheet, right-click My Computer and select
Properties.)
Figure A
When the operating system runs in MS-DOS Compatibility Mode, it’s managing the hard disk and the CD-ROM with real-mode
drivers, and performance will be degraded.

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 investigated Device Manager on this computer, 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
Device Manager indicates a problem with the primary and secondary IDE controllers.

Attempt to reload the driver
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. You'll need
to take this approach because the minor hiccup that occurred while the system was trying to load the driver could
have caused the initial failure. 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 Run from the Start menu and launch the Registry Editor by typing Regedit.exe in the Open text
box in the Run dialog 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
Page 2
Once you open the IOS key, scroll down through the values in that key until you locate the NOIDE value. Right-click
on it and select Delete from the shortcut menu. Then 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 successful, 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, 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. For example, if the hard disk is configured
to use protected-mode drivers but the CD-ROM drive isn’t, 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
problem, you’ll want to 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 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 Compatibility Mode problems, you should also consider the IDE controller driver. The driver
could be corrupt and may need to be replaced. 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, your only fix 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 it has 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 other 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 the 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 MS-DOS 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.
If Windows always finds a bad driver
In some cases I have found that windows always finds the same driver for the hard disk controllers even though
you have provided a corrected one.
This is caused by the MSHDC.INF file (MS Hard Disk Controllers) in windows\inf having an entry for the actual device
you have, but with BAD_IDE or DUAL_BAD_IDE as part of its capability.
Even if you provide a correct .INF file it still first finds its own entry and stops looking further (as it has
found an exact match).
This can be fixed be editing this MSHDC.INF file (keep a copy:-NOT called .INF or NOT in the windows\inf area!)
to remove the entrys for that device. You need to find a line of the form of xxxx.DeviceDesc="the name that
windows calls the device", and then delete that and any sections with containing the xxxx part. You might
also need to delete any parts that they refer too as well!
Next boot into safe mode and remove the device from Device Manager, then reboot.
NOTE:You must boot into safe mode before using Device Manager to remove disk or controller drivers for any disk
that has windows system files.
Good luck and Use This At Your Own Risk... ;-)