DosQFHandState
Bindings: C, MASM
This call queries the state of the specified file.
DosQFHandState (FileHandle, FileHandleState)
FileHandle (HFILE) - input
Handle of the file to be queried.
FileHandleState (PUSHORT) - output
Address of the contents of the open mode word defined in a previous
DosOpen or DosOpen2 call.
Bit Description
15 Direct Open flag:
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.
14 Write-Through flag:
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.
13 Fail-Errors flag. Media I/O errors are handled as follows:
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.
12 No-Cache/Cache:
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.
11-8 Reserved Bits.
7 Inheritance flag:
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.
6-4 Sharing Mode flags: The file sharing mode flags define what
operations other processes may perform on the file shown as
follows:
Value Definition
001 Deny Read/Write access
010 Deny Write access
011 Deny Read access
100 Deny neither Read or Write access (Deny None).
Any other value is invalid.
3 Reserved Bit.
2-0 Access Mode flags. The file access is assigned as follows:
Value Definition
000 Read-Only access
001 Write-Only access
010 Read/Write access.
Any other value is invalid.
rc (USHORT) - return
Return code descriptions are:
0 NO_ERROR
6 ERROR_INVALID_HANDLE
Remarks
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.
Created using Inf-PHP v.2 (c) 2003 Yuri Prokushev
Created using Inf-HTML v.0.9b (c) 1995 Peter Childs