Description of the Ios.log File (138899)



The information in this article applies to:

  • Microsoft Windows 95
  • Microsoft Windows 98

This article was previously published under Q138899

SUMMARY

The Ios.log file is created by the I/O Supervisor (IOS) as it attempts to determine whether or not it can safely install 32-bit drivers. Windows creates an IOS.LOG file in the Windows directory if any drives are using MS-DOS Compatibility mode. This usually means that the Dosdrv.sys or Pcidrv.sys driver is in the Config.sys file, probably as a driver for a Promise Technologies caching controller, but the corresponding 32-bit FastDisk driver is not loaded.

This message is often caused by device drivers and TSRs that create disk drives that do not correspond to physical devices. The Microsoft Interlnk program is one example.

The specified device driver or TSR hooks INT 13 and is not on the Ios.ini list of safe TSRs and drivers.

The specified device driver requires that all disk access be routed through it. After the request has passed through the device driver, the request it is submitted to the 32-bit driver. However, there is a performance penalty due to this extra routing.

This problem is typically caused by EZ-Drive software versions 3.6 and earlier.

This typically means that your computer has been infected by a boot- sector virus. It may also be caused by real-mode geometry translation software for IDE hard disks with more than 1024 cylinders.

The "Details" section may provide clues as to which of the two situations is the more likely case. To resolve this message, obtain the appropriate 32-bit FastDisk driver, copy it to the Windows\System folder, and then add the following statement to the [386Enh] section of the System.ini file:
   device=<driver>.386
				

Error issuing int 25h: unit nn, error nn



IOS performed an INT 25h (disk read) request to determine which physical device is associated with unit number nn, but the device driver returned an error code. Furthermore, the specified driver does not have the "non_disk" attribute in the Ios.ini file.

Possible error codes include:
   80   device failed to respond (timeout)
   40   seek operation failed
   20   controller failed
   10   data error (bad CRC)
   08   DMA failure
   04   sector not found
   02   bad address mark
   01   bad command
				
CAUSE:

This message is often caused by device drivers and TSR's that create disk drives that do not correspond to physical devices. The Microsoft Interlnk program is ne example.

Resolution:

Remove any device drivers and TSRs that provide "phantom" disk drives, or add them to the Ios.ini file as "non_disk" drivers.

Unsafe driver xxxxxxxx controlling unit nn



IOS has determined that the indicated device driver is unsafe due to the way it manages unit nn.

Resolution:

Remove the indicated device driver from the Config.sys and Autoexec.bat files.

Monolithic driver xxxxxxxx controlling unit nn



IOS is unable to communicate with the indicated device driver in order to take over its functionality because the device driver does not support ASPI or CAM or INT 13. Furthermore, the specified driver does not have the "monolithic" attribute in the Ios.ini file.

Resolution:

Remove the indicated device driver from the Config.sys and Autoexec.bat files.

Unsafe CD-ROM driver, xxxxxxxx, disabling protect mode CDROM



The specified CD-ROM driver was found in the [CDUnsafe] section of the Ios.ini file.

Resolution:

Remove the indicated device driver from the Config.sys and Autoexec.bat files.

Too many TSRs are hooking INT 13 & h/w interrupts.



There are too many device drivers and TSRs in the Config.sys and Autoexec.bat files that hook INT 13. The maximum number of TSRs and device drivers that can hook INT 13 without forcing MS-DOS Compatibility mode is 20.

Resolution:

Reduce the number of device drivers and TSRs in the Config.sys and Autoexec.bat files.

UnKnown int 13 hooker xxxxxxxx



NOTE: This section does not apply if the name of the INT 13 hooker is "MBRINT13." See the "Unknown INT 13 hooker MBRINT13" section.

IOS cannot use 32-bit disk access due to the presence of the indicated device driver or TSR.

Remove the indicated device driver from the Config.sys and Autoexec.bat files.

DO_NOT_CARE+MUST_CHAIN INT 13 qualified combination
Using RMM for all logical drives. Can still load Port Drivers



IOS must load the real-mode mapper (RMM) because there is a device driver listed in the Ios.ini file with the "must_chain" attribute.

Look in the Ios.ini file for drivers marked "must_chain" and see if any of them appear in Config.sys or Autoexec.bat. Remove all such drivers.

Illegal int 13 Qualifier combination. Punt Port Drivers



IOS has found a device driver listed in the Ios.ini file as "must_chain," and another device driver listed in the Ios.ini file as "must_not_chain." These two requirements are contradictory.

Resolution:

Look in the Ios.ini file for drivers marked "must_chain" and "must_not_chain" and see if any of them appear in Config.sys or Autoexec.bat. Remove all such drivers.

Downrev version of IDE software controlling too many int 13 drives



IOS has determined that the IDE software controlling the hard disk cannot safely be taken over because it is controlling drives on the secondary IDE controller.

Cause:

For information about how to resolve this problem, please see the following article in the Microsoft Knowledge Base:

ARTICLE-ID: 126855
TITLE : Windows 95 Support for Large IDE Hard Disks


Unsafe driver xxxxxxxx hooking the foll. logical units.
unit number: nn
unit number: nn



IOS did not find the indicated driver in the Ios.ini file as a "safe" driver.

Resolution

Remove the specified device driver or TSR from the Config.sys and Autoexec.bat files.

Punting miniports because of unknown CAM driver xxxxxxxx



IOS has found a device driver that uses CAM that is not listed in the Ios.ini file as a safe driver.

Resolution:

Remove the specified driver from the Config.sys and Autoexec.bat files.

Punting miniports because of two identical peripherals



IOS has found two ASPI/CAM device drivers that are both managing the same SCSI device. IOS is therefore unable to determine which of the two device drivers to use.

Resolution:

Remove the device driver you do not need.

CAM driver loaded from AUTOEXEC.BAT or later



A CAM driver has been loaded from a location other than the Config.sys file. IOS cannot take over such drivers.

Resolution:

Isolate the driver and remove it.

ASPI driver loaded from AUTOEXEC.BAT or later



An ASPI driver has been loaded from a location other than the Config.sys file. IOS cannot take over such drivers.

Resolution:

Isolate the driver and remove it.

UnKnown int 13 hooker MBRINT13



This means there is an unrecognized INT 13h hook in the master boot record (MBR).

Resolution:

Perform a virus scan on your computer to make sure your computer is not infected.

For information about how to determine whether the problem is in the geometry translation software and how to upgrade to a version that is compatible with Windows 95, please see the following article in the Microsoft Knowledge Base:

ARTICLE-ID: 126855
TITLE : Windows 95 Support for Large IDE Hard Disks


PART 2

The next section of the Ios.log file summarizes all the drives that are using the real-mode mapper (RMM) for disk access. This section may contain no lines, one line, or more than one copy of the following line:

Unit number nn going through real mode drivers.


This line is repeated once for each unit that is using the real-mode mapper.

PART 3 - THE CONFIG.SYS FILE DETAILS

This section of the Ios.log file provides a listing of each device driver loaded in the Config.sys file.

Each driver is listed in the following form:

Driver Name: <FileName>

      Character Driver
      Block Driver controlling nn unit(s)
      Driver Info:
         Driver Address: xxxxxxxx
         INT 13 Hook: xxxxxxxx
         IOSYS INT 13: xxxxxxxx
         INT 4B Hook: xxxxxxxx
         INT 4F Hook: xxxxxxxx
         ASPI Entry: xxxxxxxx
         Hooks the Foll. logical units (0=A,...):
            Hooks: unit number: nn
            Hooks: unit number: nn
      Config.sys line number:  nnnnnnnn
      Config.sys date/time stamp:  xxxxxxxx
      Hardware interrupt hook map:  xxxxxxxx
				

Not all lines are listed for all devices.

Character Driver vs. Block Driver

The lines "Character Driver" and "Block Driver controlling nn unit(s)" are mutually exclusive.

Driver Address

The 8-character address encodes the 16:16 segment:offset location of the driver in memory.

INT 13 Hook

The 8-character address encodes the 16:16 segment:offset location of the driver's INT 13 hook.

IOSYS INT 13

The 8-character address encodes the 16:16 segment:offset location of the INT 13h vector at the time Io.sys was loaded. This value is displayed only for the Io.sys driver itself.

INT 4B Hook

The 8-character address encodes the 16:16 segment:offset location of the driver's INT 4B hook.

INT 4F Hook

The 8-character address encodes the 16:16 segment:offset location of the driver's INT 4F hook.

ASPI Entry

The 8-character address encodes the 16:16 segment:offset location of the driver's ASPI entry point.

Hooks the Foll. logical units

Lists the logical units that the device driver has hooked.

Config.sys line number

The line number in Config.sys from which the device driver was loaded. The value is displayed in hexadecimal. If the device driver was loaded implicitly, then line number 00000000 is displayed.

Config.sys date/time stamp

The date/time of the Config.sys file, in encoded hexadecimal format. Decoding this value is not generally important.

Hardware interrupt hook map

A bitmask of hardware interrupts hooked by the device driver, encoded in hexadecimal. The lowest bit corresponds to IRQ 0, and so on.

An entry for a fake device named Mbrint13.sys is generated if the master boot record has been hooked. The INT 13 Hook address is the address of the hook as installed by the MBR. If this value begins with a 9, then it is likely that the computer has been infected by a boot-sector virus.

PART 4 - THE AUTOEXEC.BAT FILE DETAILS

The final section in the Ios.log file is a listing of TSR programs loaded by the Autoexec.bat file. This section is headed by the line:

Autoexec Date/Time Stamp: xxxxxxxx


Decoding the date/time stamp is not generally important.

Each TSR is listed in the following form, with only applicable lines listed for each TSR.

TSR Name: xxxxxxxx

      Autoexec Position: xxxxxxxx
      Hardware Interrupt Hook Bit Map: xxxxxxxx
         Hooks: INT 13
         Hooks: unit number: nn
         Hooks: unit number: nn
				

Autoexec Position

The file offset within the Autoexec.bat file of the line that caused the TSR to be loaded.

Hardware Interrupt Hook Bit Map

A bitmask of hardware interrupts hooked by the TSR, encoded in hexadecimal. The lowest bit corresponds to IRQ 0, and so on.

Hooks: INT 13

The TSR hooks INT 13 and is a strong candidate for forcing the system to use compatibility-mode disk access.

Hooks: unit number: nn

Lists the logical units that the TSR has hooked.

MORE INFORMATION

The Ios.log file has several sections, each of which is described below.

GLOSSARY OF TERMS

INT 13 - Interrupt 13 is the hard disk drive interrupt. When the operating system needs to access the hard disk, it issues an INT 13 call. This typically is serviced by the BIOS, but device drivers and TSRs may intercept the request.

INT 4B - Interrupt 4B is the interrupt used by Common Access Method (CAM) versions 1.9 and earlier.

INT 4F - Interrupt 4F is the interrupt used by Common Access Method (CAM) versions 2.0 and later.

Hook - Hook is a synonym for "intercept." For example, an "INT 13 hooker" is a device driver or program that intercepts all INT 13 calls. The reasons for doing so may be innocuous (a screen saver), beneficial (a device driver that enables you to access a device that otherwise would be inaccessible), or harmful (a virus).

TSR - (Terminate and Stay Resident) - A program, typically loaded in the Autoexec.bat file, that loads itself permanently into memory.

Unit number - A unit number is a drive letter converted to a number. Drive A is unit number zero, drive B is unit number one, and so on. These are sometimes referred to as "logical units," which should not be confused with SCSI logical unit numbers (LUNs).

PART 1

The first section of the Ios.log file summarizes IOS takeover. This section may contain none, one, or more of the lines listed below in the order in which they normally appear.


Incompatible driver xxxxxxxx. Load FastDisk for driver if possible



The indicated device driver hooks INT 13 in a manner that Windows has considered unsafe, but which would become safe if a Windows 3.1 FastDisk driver were installed.

REFERENCES

"Microsoft Windows 95 Resource Kit," Chapter 19

Modification Type:MinorLast Reviewed:12/16/2004
Keywords:kbinfo KB138899