3.3.5.57.3 Receiving a TRANS_RAW_READ_NMPIPE Request

This method of reading data from a named pipe ignores message boundaries even if the pipe is set up as a message mode pipe.<327>

Upon receipt of a TRANS_RAW_READ_NMPIPE subcommand request, the SMB Trans subsystem MUST read data from the open named pipe specified by the FID, which is contained in Setup[1] in the request. The amount of data to be read is specified by the MaxDataCount value of the SMB_COM_TRANSACTION request. The data MUST be read without regard to message boundaries (raw mode). If the named pipe is not set to non-blocking mode, and there is no data in the named pipe, the read operation on the server MUST wait indefinitely for data to become available (or until it is canceled).

If the request fails, the status code indicating the error is returned in an SMB_COM_TRANSACTION error response message. If successful, the retrieved data is returned in the Trans_Data section of the TRANS_RAW_READ_NMPIPE transaction response. The actual number of bytes read is returned in TotalDataCount in the response, and can be less than the MaxDataCount value specified in the request.

The CIFS server passes the results to the client in the SMB_COM_TRANSACTION response.