共用方式為


2.2.5.6.2 Response

The server MUST set an error code in the Status field of the SMB Header (section 2.2.3.1) of the response to indicate whether the transaction against the named pipe succeeded or failed.<138>

 Trans_Data
   {
   UCHAR ReadData[TotalDataCount];
   }
            

SMB_Parameters: The SMB_Parameters section contains the relevant fields for the TRANS_TRANSACT_NMPIPE (section 2.2.5.6) subcommand of the SMB_COM_TRANSACTION (section 2.2.4.33) response.

WordCount (1 byte): This field MUST be set to 0x0A.

Words (20 bytes):

TotalParameterCount (2 bytes): This field MUST be set to 0x0000.

TotalDataCount (2 bytes): This field MUST be the total number of bytes read from the named pipe in raw format.

ParameterCount (2 bytes): This field MUST be set to 0x0000.

DataCount (2 bytes): This field MUST be set to the number of bytes read from the named pipe that are returned in this response. This field MUST be less than or equal to the value of the TotalDataCount field.

SetupCount (1 byte): This field MUST be set to 0x00.


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_Data (variable)

...

Trans_Data (variable):


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

ReadData (variable)

...

ReadData (variable): This field MUST contain data read from the named pipe.

Error Codes

SMB error class

SMB error code

NT status code

POSIX equivalent

Description

ERRDOS

(0x01)

ERRbadfid

(0x0006)

STATUS_INVALID_HANDLE

(0xC0000008)

STATUS_SMB_BAD_FID

(0x00060001)

EBADF

Invalid FID.

ERRDOS

(0x01)

ERRnomem

(0x0008)

STATUS_INSUFF_SERVER_RESOURCES

(0xC0000205)

ENOMEM

The server is out of resources required to process the request.

ERRDOS

(0x01)

ERRinvalidparam

(0x0057)

STATUS_INVALID_PARAMETER

(0xC000000D)

The named pipe indicated by the FID is not in message mode.

ERRDOS

(0x01)

ERRmoredata

(0x00EA)

STATUS_BUFFER_OVERFLOW

(0x80000005)

There is more data available than can fit in the response buffer based on the MaxDataCount field value in the client request.

ERRSRV

(0x02)

ERRerror

(0x0001)

STATUS_INVALID_SMB

(0x00010002)

Invalid SMB. Not enough parameter bytes were sent.

ERRSRV

(0x02)

ERRinvtid

(0x0005)

STATUS_INVALID_HANDLE

(0xC0000008)

STATUS_SMB_BAD_TID

(0x00050002)

The TID is no longer valid.

ERRSRV

(0x02)

ERRbaduid

(0x005B)

STATUS_INVALID_HANDLE

(0xC0000008)

STATUS_SMB_BAD_UID

(0x005B0002)

The UID supplied is not defined to the session.