Both the server and the client processes read data from a pipe by calling DosRead. The server reads from the handle that was returned when it created the pipe with DosCreateNPipe, and the client reads from the handle that was returned to it by DosOpen.
When a pipe is created, the PipeMode parameter is used to specify both the pipe type and the read mode for the server end of the pipe:
--
The PipeMode parameter of DosCreateNPipe also specifies the blocking mode for the server end of the pipe:
DosRead works the same for both ends of the pipe. However, the read mode and blocking mode are not necessarily the same for the client end of the pipe as they are for the server end, because DosOpen always opens the CLIENT end in byte-read mode and blocking mode.
The read mode and blocking mode for either end of the pipe can be changed by calling DosSetNPHState. The pipe type, however, is always the same for both the server and client ends of the pipe, and it cannot be changed.