2.2.3.1 SMB2 NEGOTIATE_CONTEXT Request Values

The SMB2_NEGOTIATE_CONTEXT structure is used by the SMB2 NEGOTIATE Request and the SMB2 NEGOTIATE Response to encode additional properties.

The server MUST support receiving negotiate contexts in any order.

Each structure takes the following form.


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

ContextType

DataLength

Reserved

Data (variable)

...

ContextType (2 bytes): Specifies the type of context in the Data field. This field MUST be one of the following values:

Value

Meaning

SMB2_PREAUTH_INTEGRITY_CAPABILITIES

0x0001

The Data field contains a list of preauthentication integrity hash functions as well as an optional salt value, as specified in section 2.2.3.1.1.

SMB2_ENCRYPTION_CAPABILITIES

0x0002

The Data field contains a list of encryption algorithms, as specified in section 2.2.3.1.2.

SMB2_COMPRESSION_CAPABILITIES

0x0003

The Data field contains a list of compression algorithms, as specified in section 2.2.3.1.3<14>.

SMB2_NETNAME_NEGOTIATE_CONTEXT_ID 0x0005

The Data field contains the server name to which the client connects<15>.

SMB2_TRANSPORT_CAPABILITIES

0x0006

The Data field contains transport capabilities, as specified in section 2.2.3.1.5.<16>

SMB2_RDMA_TRANSFORM_CAPABILITIES

0x0007

The Data field contains a list of RDMA transforms, as specified in section 2.2.3.1.6.<17>

SMB2_SIGNING_CAPABILITIES

0x0008

The Data field contains a list of signing algorithms, as specified in section 2.2.3.1.7. <18>

SMB2_CONTEXTTYPE_RESERVED

0x0100

This value MUST be reserved and MUST be ignored on receipt.

DataLength (2 bytes): The length, in bytes, of the Data field.

Reserved (4 bytes): This field MUST NOT be used and MUST be reserved. This value MUST be set to 0 by the client, and MUST be ignored by the server.

Data (variable): A variable-length field that contains the negotiate context specified by the ContextType field.