3.1.4.1.1 Command Sequence Requirements

An SMB connection, a Protocol Negotiation, and an SMB session MUST be established before a message can be sent. That is:

  • An SMB connection MUST be established before any messages can be sent.

  • Following SMB connection establishment, an SMB_COM_NEGOTIATE (section 2.2.4.52) command MUST be used to establish the SMB dialect to be used before any other SMB command can be sent. Once a dialect has been negotiated, further SMB_COM_NEGOTIATE commands MUST NOT be executed on the connection. Any subsequent SMB_COM_NEGOTIATE Request (section 2.2.4.52.1) sent to the server on the same connection MUST be failed with an error code of STATUS_INVALID_SMB (ERRSRV/ERRerror).

  • Unless otherwise noted, following a successful Protocol Negotiation an SMB_COM_SESSION_SETUP_ANDX (section 2.2.4.53) command MUST be used to establish an SMB session before any other SMB commands  are sent. Multiple SMB sessions can be set up per SMB connection.