On Sat, 29 Oct 2005 09:56:27 GMT, "pjp"
I "suspect" the "hang" is related to an interrupt of some sort (ring 0 bios
call or similar???) waiting on the firmware in the drive to fill the data
buffer and report back it's success/failure code. Seems a lot of the time
Windows will hang on just about any hardware if it's slow enough or
"broken", e.g. unresponsive nic, modem, floppies, etc.
I find it more a pain in the butt when the cd turns out to be unreadable and
the drive takes it's time responding to the eject button.
Yup - DOS seems to take these things in its stride, while Windows
tends to fall on its ass.
If the OS can regain control, then it needs to sanity-check how long
things take, and break cleanly when they fail. But if the OS can't
regain control, then you are screwed.
The OS can't regain control if the device's driver disables
intrerrupts without applying its own time-out protection, or if the
hardware it calls does not return from the call.
The latter's unlikely to be an issue unless the hardware disables the
CPU at the hardware level; something that AFAIK is not possible within
the Intel x86 architecture.
What's more likely to go wrong, are three things:
1) Dumb-ass drivers that disable interrupts and then wait forever for
an expected IO port event or result
2) Dumb-ass drivers that retry the failed attempt, being unaware that
underlying code and firmware may also be retrying the attempt, so the
result is an exponential number of retries that beat the hardware to
death (this is amplified with HDs where doomed attempts to hide
defects via sector remapping are made)
3) Dumb-ass app or OS code that doesn't check for error results of
disk operations, and just blunders on as if everything worked
-------------------- ----- ---- --- -- - - - -
Tip Of The Day:
To disable the 'Tip of the Day' feature...