2.2.5.1.1 Request

 Trans_Parameters
   {
   USHORT PipeState;
   }
  

SMB_Parameters:

WordCount (1 byte): This field value is the total number of SMB parameter words and MUST be 0x10.

Words (32 bytes):

TotalParameterCount (2 bytes): This field MUST be set to 0x0002 for this request.

TotalDataCount (2 bytes): This field MUST be set to 0x0000 for this request.

MaxParameterCount (2 bytes): This field MUST be set to 0x0000 for this request.

MaxDataCount (2 bytes): This field MUST be set to 0x0000 for this request.

MaxSetupCount (1 byte): This field MUST be set to 0x00 for this request.

Flags (2 bytes): This field SHOULD be set to 0x0000 for this request.

Timeout (4 bytes): This field SHOULD be set to 0x00000000 for this request.

ParameterCount (2 bytes): This field SHOULD be set to 0x0002 for this request.

DataCount (2 bytes): This field MUST be set to 0x0000 for this request.

SetupCount (1 byte): This field MUST be set to 0x02 for this request.

Setup (4 bytes):

Subcommand (2 bytes): This field MUST be set to the transaction subcommand value of TRANS_SET_NMPIPE_STATE (0x0001) for this request.

FID (2 bytes): This field MUST be set to the FID for the named pipe to read. This field MUST be set to a valid FID from a server response for a previous SMB command to open or create a named pipe. These commands include SMB_COM_OPEN, SMB_COM_CREATE, SMB_COM_CREATE_TEMPORARY, SMB_COM_CREATE_NEW, SMB_COM_OPEN_ANDX, SMB_COM_NT_CREATE_ANDX, and SMB_COM_NT_TRANSACT with subcommand NT_TRANSACT_CREATE.


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

Trans_Parameters

Trans_Parameters (2 bytes):


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

PipeState

PipeState (2 bytes): This field contains the value that defines the state being set on the pipe. Any combination of the following flags MUST be valid for the set operation. All other flags are considered unused and SHOULD be set to 0 when this message is sent. The server MUST ignore the unused bits when the message is received.

Name and bitmask

Meaning

Nonblocking

0x8000

If set, a read or a raw read request returns all data available to be read from the named pipe, up to the maximum read size set in the request. A write request returns after writing data to the named pipe without waiting for the data to be consumed. Named pipe non-blocking raw writes are not allowed. Raw writes MUST be performed in blocking mode.

If not set, a read or a raw read request will wait (block) until sufficient data to satisfy the read request becomes available, or until the request is canceled. A write request blocks until its data is consumed, if the write request length is greater than zero.

ReadMode

0x0100

If set, the named pipe is operating in message mode. If not set, the named pipe is operating in byte mode. In message mode, the system treats the bytes read or written in each I/O operation to the pipe as a message unit. The system MUST perform write operations on message-type pipes as if write-through mode were enabled.