DosQNmPHandState
From EDM2
This call returns information for a named pipe's specific handle state.
Syntax
DosQNmPHandState (Handle, PipeHandleState)
Parameters
- Handle (HPIPE) - input
- Handle of the named pipe returned by DosMakeNmPipe or DosOpen.
- PipeHandleState (PUSHORT) - output
- Address of the named pipe handle state:
- 15 - Blocking; pipe is defined as follows:
- 0 = Reads/Writes block if no data available.
- 1 = Reads/Writes return immediately if no data available.
- Reads normally block until at least partial data can be returned. Writes, by default, block until all bytes requested have been written. :::Non-blocking mode (value is 1) changes this behavior as follows:
- DosRead returns immediately with BytesRead = 0 (as defined in DosRead) if no data is available.
- DosWrite returns immediately with BytesWritten = 0 (as defined in DosWrite) if insufficient buffer space is available in the pipe, or the entire data area is transferred.
- 14 - Server or requester end; end-point of named pipe shown as follows:
- 0 = Handle is the client end of a named pipe.
- 1 = Handle is the server (requester) end of a named pipe.
- 13-12 - Reserved.
- 11-10 - Type of named pipe:
- 00 = Pipe is a byte stream pipe.
- 01 = Pipe is a message stream pipe.
- 9-8 - Read mode:
- 00 = Read pipe as a byte stream.
- 01 = Read pipe as a message stream.
- 7-0 - Instance count; 8-bit count to control pipe instances. When making the first instance of a named pipe, this field specifies how many instances can be created. Instances are as follows:
- 1 - This can be the only instance (pipe is unique).
- -1 - The number of instances is unlimited.
- 0 - Reserved value.
- 15 - Blocking; pipe is defined as follows:
Return Code
- rc (USHORT) - return
- Return code descriptions are:
- 0 NO_ERROR
- 230 ERROR_BAD_PIPE
- 233 ERROR_PIPE_NOT_CONNECTED
Remarks
At the serving end, the values returned by DosQNmPHandState are those originally established by DosMakeNmPipe or a subsequent DosSetNmPHandState. The values returned by the client end are those originally established by DosOpen or a subsequent DosSetNmPHandState.
Bindings
C
#define INCL_DOSNMPIPES USHORT rc = DosQNmPHandState(Handle, PipeHandleState); HPIPE Handle; /* Pipe handle */ PUSHORT PipeHandleState; /* Pipe handle state */ USHORT rc; /* return code */
MASM
EXTRN DosQNmPHandState:FAR INCL_DOSNMPIPES EQU 1 PUSH WORD Handle ;Pipe handle PUSH@ WORD PipeHandleState ;Pipe handle state (returned) CALL DosQNmPHandState Returns WORD