1.7 Versioning and Capability Negotiation

This document covers versioning issues in the following areas:

  • Supported Transports: The extensions in this document add additional transports, as defined in section 2.1.

  • Security and Authentication Methods: The extensions in this document add additional authentication methods, as specified in section 3.2.4.2.

  • Capability Negotiation: The extensions in this document use capability negotiation, as specified in [MS-CIFS] sections 1.7, 2.2.4.52, 2.2.4.53, and 3.3.1.2.

SMB dialect negotiation is handled as specified in [MS-CIFS] sections 1.7 and 3.2.4.2. The extensions specified in this document introduce no new dialects and apply only to connections that have negotiated the NT LAN Manager dialect, as identified by the "NT LM 0.12" dialect identification string. The extensions specified in this document are detected via the following methods:

  • They can be returned in the Capabilities field, as specified in [MS-CIFS] section 2.2.4.52. Specific new capability options are defined in this document.

  • They can be supplied or returned in the Flags and Flags2 fields of the SMB header, as specified in [MS-CIFS] sections 2.2.3.1.

  • A server can return an error code (STATUS_NOT_SUPPORTED) when a client request is sent to a server for a new feature that is not supported.

A client written to support these extensions cannot require that the target server implement these extensions to successfully connect. Thus, a server that does not implement an extension is still accessible by a client that implements that extension, although the relevant new features might not be available. The one exception is that a client offers the capability to be configured to require the new security features to create a more secure environment so that the client could be restricted from connecting successfully to servers that do not implement these features.

Negotiation of the use of the Generic Security Service Application Program Interface (GSS API) for authentication is specified in section 3.2.4.2.4. The GSS API is specified in [RFC2743].