2.6.1 Version Negotiation Using RPC

When a client attempts to connect with an Exchange server via the RPC protocol, as described in [MS-OXCRPC], the client sends its version as part of the EcDoConnectEx connection request. If the server returns a value of Success (0x00000000) or ecVersionMismatch (0x80040110) to the connection request, the server also returns two version numbers: the server version, as described by the rgwServerVersion parameter, and the "best" version, as described by the rgwBestVersion parameter. The rgwServerVersion parameter contains the actual version of the server. The value of the rgwBestVersion parameter depends on whether Success or ecVersionMismatch was returned by the EcDoConnectEx method. If the server returns a value of ecVersionMismatch, the rgwBestVersion parameter contains the minimal client version the client needs to support to connect to the server. If the server returned a value of Success, the rgwBestVersion parameter contains the client version provided by the client during the request. If the server returns any other error code, the value of the rgwBestVersion parameter is undefined.

Upon exchange of this information, the client can determine the level of functionality offered by that Exchange server and the most appropriate functionality to provide to the end user.

The server cannot perform any client protocol version negotiation.

Show: