This call queries the state of the specified file.
DosQFHandState
FileHandle (HFILE) - input
Bit
0 = PathName represents a file to be opened in the normal way.
1 = PathName is "Drive:" and represents a mounted disk or diskette volume to be opened for direct access.
0 = Writes to the file may be run through the file system buffer cache.
1 = Writes to the file may go through the file system buffer cache but the sectors are written (actual file I/O completed) before a synchronous write call returns. This state of the file defines it as a synchronous file. For synchronous files, this is a mandatory bit in that the data must be written out to the medium for synchronous write operations.
This bit is not inherited by child processes.
0 = Reported through the system critical error handler.
1 = Reported directly to the caller by return code.
Media I/O errors generated through an IOCTL Category 8 function always get reported directly to the caller by return code. The Fail-Errors function applies only to non-IOCTL handle-based file I/O calls.
This bit is not inherited by child processes.
0 = It is advisable for the disk driver to cache the data in I/O operations on this file.
1 = I/O to the file need not be done through the disk driver cache.
This bit is an advisory bit, and is used to advise FSDs and device drivers on whether it is worth caching the data. This bit, like the write-through bit, is a per-handle bit.
This bit is not inherited by child processes.
0 = File handle is inherited by a spawned process resulting from a DosExecPgm call.
1 = File handle is private to the current process.
This bit is not inherited by child processes.
Any other value is invalid.
Any other value is invalid.
When a critical error occurs that the application cannot handle, it may reset critical error handling to be performed by the system. This is done by calling DosSetFHandState to turn off the fail/errors bit and then reissuing the I/O call. The expected critical error reoccurs, and control is passed to the system critical error handler. The precise time that the effect of this function is visible at the application level is unpredictable when asynchronous I/O is pending.
The DASD Open bit parameter is the "Direct I/O flag." It provides an access mechanism to a disk or diskette volume independent of the file system. This mode should only be used by systems programs and not by application programs.
Named Pipe Considerations
As defined by OS/2 D = 0. Other bits as defined by DosMakeNmPipe (serving end), DosOpen (client end), or the last DosSetFHandState.