Microsoft KB Archive/138899

= Description of the Ios.log File =

Article ID: 138899

Article Last Modified on 1/19/2007

-

APPLIES TO


 * Microsoft Windows 95
 * Microsoft Windows 98 Standard Edition

-



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= .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: 

     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.

