3.2.3 Initialization

When the CIFS client is started, the following values MUST be initialized:

  • Values for Client.PlaintextAuthenticationPolicy, Client.LMAuthenticationPolicy, and Client.NTLMAuthenticationPolicy MUST be set based on system policy and implementation capabilities, and MUST be one of the possible values listed in section 3.2.1.1.<190>

  • Values for Client.MessageSigningPolicy MUST be set based on system policy and MUST be one of the possible values listed in section 3.2.1.1. The value of this element is not constrained by the values of any other policies.<191>

  • Client.ConnectionTable MUST be empty.

  • Client.SessionTimeoutValue MUST be set based on system policy.<192>

  • Client.MaxBufferSize MUST be set based on system resource allocation policy.<193>

  • Client.SupportDialects MUST be set to the list of dialect identifiers that the client supports, presented in section 1.7.<194>

  • Client.Capabilities MUST be set based on the capabilities of the local implementation. The specific bits to set in this ADM element are specified in section 2.2.4.53.1.

When an SMB connection is established, the following values MUST be initialized:

  • Client.Connection.ClientNextSendSequenceNumber MUST be set to 2.

  • Client.Connection.ClientResponseSequenceNumber MUST be an empty list.

  • Client.Connection.ConnectionlessSessionID MUST be set to zero.

  • Client.Connection.IsSigningActive is set to FALSE.

  • Client.Connection.NegotiateSent MUST be set to FALSE.

  • Client.Connection.NTLMChallenge MUST be set to zero.

  • Client.Connection.OpenTable MUST be empty.

  • Client.Connection.PIDMIDList MUST be empty.

  • Client.Connection.SearchOpenTable MUST be empty.

  • Client.Connection.SelectedDialect MUST be empty.

  • Client.Connection.ServerCapabilities MUST be set to zero.

  • Client.Connection.ServerChallengeResponse MUST be set to FALSE.

  • Client.Connection.ServerMaxBufferSize MUST be set to zero.

  • Client.Connection.MaxMpxCount MUST be set based on system policy.<195>

  • Client.Connection.ServerName MUST be set to the name of the server to which the connection is being established.

  • Client.Connection.ServerSigningState MUST be Disabled.

  • Client.Connection.SessionTable MUST be empty.

  • Client.Connection.ShareLevelAccessControl MUST be set to FALSE.

  • Client.Connection.SigningChallengeResponse MUST be a zero-length array.

  • Client.Connection.SigningSessionKey MUST be set to zero.

  • Client.Connection.TreeConnectTable MUST be empty.

When a new SMB session is established, the following values MUST be initialized:

  • Client.Session.Connection MUST be the SMB connection associated with this SMB session.

  • Client.Session.SessionKey MUST be zero.

  • Client.Session.SessionUID MUST be the server-supplied UID for this SMB session.

  • Client.Session.UserCredentials MUST be set to empty.

When a new tree connect is established, the following values MUST be initialized:

  • Client.TreeConnect.Connection MUST be the SMB connection associated with this tree connect.

  • Client.TreeConnect.ShareName MUST be the name of the share to which the client is connecting.

  • Client.TreeConnect.TreeID MUST be the server-supplied TID for this tree connect.