1.7 Versioning and Capability Negotiation

This document covers versioning issues in the following areas:

  • Supported RPC Transports: The MSDTC Connection Manager: OleTx Transports Protocol uses multiple RPC protocol sequences, as specified in section 2.1.1.

  • Protocol Versions: The MSDTC Connection Manager: OleTx Transports Protocol RPC interface has a single version number of 1.0; however, there are two instances of this interface:

    • A base interface.

    • An extended interface obtained by appending methods at the end of the base interface described in section 3.1.

    Corresponding to the two interface instances, this protocol defines two versions, which for the purposes of this specification are referred as "MS-CMPO 1.0" (implements the base interface) and "MS-CMPO 1.1" (implements the extended interface).<2>

    It is possible to further extend the MSDTC Connection Manager: OleTx Transports Protocol without altering the interface version number by adding RPC methods to the interface with opnums numerically beyond those defined in this specification.

    A client determines support for a certain interface instance (or protocol version) from a server by attempting to invoke an instance-specific method. If the method is not supported, the RPC server returns an RPC_S_PROCNUM_OUT_OF_RANGE error. For RPC versioning and capacity negotiation in this situation, see [C706], section 4.2.4.2, and [MS-RPCE], section 1.7.

  • Security and Authentication Methods: When using authentication, the MSDTC Connection Manager: OleTx Transports Protocol uses the security provider security model as specified in [MS-RPCE], section 2.2.1.1.7. The specific methods of authentication for this protocol are highly implementation-dependent. In order to communicate securely, two protocol partners have to agree on a common security provider package to use. Security provider negotiation packages are specified in [MS-SPNG]. Windows implementations of MSDTC Connection Manager: OleTx Transports Protocol use by default the SPNEGO security provider described in [MS-SPNG], which allows for in-band negotiation of a security provider package.