Jump to content

DosSetNmPHandState

From EDM2

Description

This call sets the read and blocking modes of a named pipe.

Syntax

 DosSetNmPHandState

    (Handle, PipeHandleState)

Parameters

Handle (HPIPE) - input
Handle of the named pipe returned by DosMakeNmPipe or DosOpen.
PipeHandleState (USHORT) - input
Named pipe handle state, consists of the following bit fields:
Bit        Description
15     Blocking flag:
       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 (B = 1) changes this behavior as follows: 
   DosRead
       Returns BytesRead = 0 if no data is available. 
   DosWrite
       Returns BytesWritten = 0 if there is not enough buffer space available in the pipe. Otherwise, the entire data area is transferred. 
14-10      Reserved and must be set to zero. 
9-8        Read Mode flag:
       00 = Read pipe as byte stream.
       01 = Read pipe as a message stream. 
7-0        Reserved and must be set to zero.

Return Code

rc (USHORT) - return

Return code descriptions are:

  • 0 NO_ERROR
  • 87 ERROR_INVALID_PARAMETER
  • 230 ERROR_BAD_PIPE
  • 231 ERROR_PIPE_BUSY
  • 233 ERROR_PIPE_NOT_CONNECTED

Remarks

The read mode and blocking/non-blocking mode of a named pipe can be changed. The pipe mode can not be changed to non-blocking when another thread is blocked on an I/O to the same end of the pipe.

Example Code

C Binding

#define INCL_DOSNMPIPES

USHORT  rc = DosSetNmPHandState(Handle, PipeHandleState);

HPIPE            Handle;          /* Pipe handle */
USHORT           PipeHandleState; /* Pipe handle state */

USHORT           rc;              /* return code */

MASM Binding

EXTRN  DosSetNmPHandState:FAR
INCL_DOSNMPIPES     EQU 1

PUSH   WORD    Handle          ;Pipe handle
PUSH   WORD    PipeHandleState ;Pipe handle state
CALL   DosSetNmPHandState

Returns WORD

Related Functions