2.2.4.34.1 Request
-
SMB_Parameters { UCHAR WordCount; Words { USHORT TotalParameterCount; USHORT TotalDataCount; USHORT ParameterCount; USHORT ParameterOffset; USHORT ParameterDisplacement; USHORT DataCount; USHORT DataOffset; USHORT DataDisplacement; } } SMB_Data { USHORT ByteCount; Bytes { UCHAR Pad1[]; UCHAR Trans_Parameters[ParameterCount]; UCHAR Pad2[]; UCHAR Trans_Data[DataCount]; } }
SMB_Header:
-
This command MUST be sent following a successful SMB_COM_TRANSACTION (section 2.2.4.33) Intermediate Response from the server. The PID, MID, TID, and UID MUST be the same for all requests and responses that are part of the same transaction.
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
3 |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
SMB_Parameters (17 bytes) |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
... |
|||||||||||||||||||||||||||||||
... |
SMB_Data (variable) |
||||||||||||||||||||||||||||||
... |
SMB_Parameters (17 bytes):
-
0
1
2
3
4
5
6
7
8
91
0
1
2
3
4
5
6
7
8
92
0
1
2
3
4
5
6
7
8
93
0
1WordCount
Words (16 bytes)
...
...
...
-
WordCount (1 byte): This field MUST be 0x08.
-
Words (16 bytes):
-
0
1
2
3
4
5
6
7
8
91
0
1
2
3
4
5
6
7
8
92
0
1
2
3
4
5
6
7
8
93
0
1TotalParameterCount
TotalDataCount
ParameterCount
ParameterOffset
ParameterDisplacement
DataCount
DataOffset
DataDisplacement
-
TotalParameterCount (2 bytes): The total number of transaction parameter bytes to be sent to the server over the course of this transaction. This value MAY be less than or equal to the TotalParameterCount in preceding request messages that are part of the same transaction. This value represents transaction parameter bytes, not SMB parameter words.
-
TotalDataCount (2 bytes): The total number of transaction data bytes to be sent to the server over the course of this transaction. This value MAY be less than or equal to the TotalDataCount in preceding request messages that are part of the same transaction. This value represents transaction data bytes, not SMB data bytes.
-
ParameterCount (2 bytes): The number of transaction parameter bytes being sent in the SMB message. This value MUST be less than TotalParameterCount. The sum of the ParameterCount values across all of the request messages in a transaction MUST be equal to the TotalParameterCount reported in the last request message of the transaction.
-
ParameterOffset (2 bytes): The offset, in bytes, from the start of the SMB_Header to the transaction parameter bytes contained in this SMB message. This MUST be the number of bytes from the start of the SMB message to the start of the SMB_Data.Bytes.Trans_Parameters field. Server implementations MUST use this value to locate the transaction parameter block within the SMB message. If ParameterCount is zero, the client/server MAY set this field to zero.<47>
-
ParameterDisplacement (2 bytes): The offset, relative to all of the transaction parameter bytes sent to the server in this transaction, at which this block of parameter bytes MUST be placed. This value can be used by the server to correctly reassemble the transaction parameters even if the SMB request messages are received out of order.
-
DataCount (2 bytes): The number of transaction data bytes being sent in this SMB message. This value MUST be less than the value of TotalDataCount. The sum of the DataCount values across all of the request messages in a transaction MUST be equal to the smallest TotalDataCount value reported to the server.
-
DataOffset (2 bytes): The offset, in bytes, from the start of the SMB_Header to the transaction data bytes contained in this SMB message. This MUST be the number of bytes from the start of the SMB message to the start of the SMB_Data.Bytes.Trans_Data field. Server implementations MUST use this value to locate the transaction data block within the SMB message. If DataCount is zero, the client/server MAY set this field to zero.<48>
-
DataDisplacement (2 bytes): The offset, relative to all of the transaction data bytes sent to the server in this transaction, at which this block of parameter bytes MUST be placed. This value can be used by the server to correctly reassemble the transaction data block even if the SMB request messages are received out of order.
-
SMB_Data (variable):
The SMB_Data section of the SMB_COM_TRANSACTION_SECONDARY request contains parameters and data bytes being sent to the server.
-
0
1
2
3
4
5
6
7
8
91
0
1
2
3
4
5
6
7
8
92
0
1
2
3
4
5
6
7
8
93
0
1ByteCount
Bytes (variable)
...
-
ByteCount (2 bytes): The number of bytes in the SMB_Data.Bytes array, which follows.
-
Bytes (variable):
-
-
0
1
2
3
4
5
6
7
8
91
0
1
2
3
4
5
6
7
8
92
0
1
2
3
4
5
6
7
8
93
0
1Pad1 (variable)
...
Trans_Parameters (variable)
...
Pad2 (variable)
...
Trans_Data (variable)
...
-
Pad1 (variable): This field SHOULD be used as an array of padding bytes to align the following field to a 4-byte boundary relative to the start of the SMB Header (section 2.2.3.1). This constraint can cause this field to be a zero-length field. This field SHOULD be set to zero by the client/server and MUST be ignored by the server/client.
-
Trans_Parameters (variable): Transaction parameter bytes.
-
Pad2 (variable): This field SHOULD be used as an array of padding bytes to align the following field to a 4-byte boundary relative to the start of the SMB Header. This constraint can cause this field to be a zero-length field. This field SHOULD be set to zero by the client/server and MUST be ignored by the server/client.
-
Trans_Data (variable): Transaction data bytes.
-
-