2.2.4.46 SMB_COM_TRANSACTION2 (0x32)

This command was introduced in the LAN Manager 1.2 dialect.

SMB_COM_TRANSACTION2 subcommands provide support for a richer set of server-side file system semantics. The "Trans2 subcommands", as they are called, allow clients to set and retrieve Extended Attribute key/value pairs, make use of long file names (longer than the original 8.3 format names), and perform directory searches, among other tasks.

The client indicates that it has not sent all of the Data bytes by setting DataCount to a value less than TotalDataCount. Similarly, if ParameterCount is less than TotalParameterCount, then the client has more Parameter bytes to send. Parameter bytes SHOULD be sent before Data bytes, and clients SHOULD attempt to send as many bytes as possible in each message. Servers SHOULD be prepared, however, to accept Parameters and Data in any order, in large or small amounts.

For both the request and the response, the positions and lengths of the SMB_Data.Trans2_Parameters and SMB_Data.Trans2_Data fields are determined by the values of the SMB_Parameters.ParameterOffset, SMB_Parameters.ParameterCount, SMB_Parameters.DataOffset, and SMB_Parameters.DataCount fields. In addition, the SMB_Parameters.ParameterDisplacement and SMB_Parameters.DataDisplacement fields can be used to change the order in which subranges of bytes are transferred. Servers SHOULD transfer bytes in order and give precedence to SMB_Data.Trans2_Parameters bytes. Clients SHOULD be prepared to reconstruct transaction SMB_Data.Trans2_Parameters and SMB_Data.Trans_Data, regardless of the order or locations in which they are delivered.