[comp.sys.ibm.pc] DOS 4.0 InhibitCriticalError feature

geoff@eagle_snax.UUCP ( R.H. coast near the top) (10/07/88)

The DOS 4.00 "inhibit fatal error" feature seems horribly inadequate.

I tried an open of "A:FOO" with the following setup:

	autocommit - NO
	does-not-exist - CREATE
	exists - REPLACE
And for grins I put a physically write-protected diskette in
drive A.

With
	inhibit-critical-errors - NO

I got a conventional "write protect error", and when I selected
"fail", the call failed with AX=5 (access denied). However with

	inhibit-critical-errors - YES

the call succeeded with AX=5 and CX=2 (file created)! Simlarly when
I tried 
	autocommit - NO
	does-not-exist - CREATE
	exists - REPLACE
	inhibit-critical-errors - YES

on a file which DID exist on the floppy, it succeeded with CX=3
(file replaced). When I tried to write to the handle which
came back, the write succeeded, but a second or two later
(in fact as I was closing the handle) I got a write protect error.
Clearly this was an artefact of the buffer cache mechanism.
I tried again with
	autocommit - YES
	does-not-exist - CREATE
	exists - REPLACE
	inhibit-critical-errors - YES

This time the write failed (AX=5), but I still got the
write protect error - presumably the implied close at exit
time is not protected from the critical error inhibition. I tried
putting in an explicit CLOSE; this failed with AX=6 (invalid handle),
and I STILL hit the Write protect error.

In summary, if this feature was intended to allow people to dispense
with the old int24 tricks, it is woefully inadequate. It appears
that when I open the file I cannot tell whether the file is
writeable: the call just succeeds willy-nilly. If I then try to
write the file, the call will fail with an access denied condition,
but when I come to close this handle (implicitly or explicitly) I
am bound to get a critical error - which is what I was trying
to avoid.

Does anyone know if this is fixed in 4.0.1 (or maybe 4.1?).
-- 
Geoff Arnold, Sun Microsystems Inc.+------------------------------------------+ 
PC Distrib. Sys. (home of PC-NFS)  |If you do nothing, you will automatically |
UUCP:{hplabs,decwrl...}!sun!garnold|receive our Disclaimer of the Month choice|
ARPA:garnold@sun.com               +------------------------------------------+