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