2.2.1 Initializing DVCs
Capabilities PDUs are exchanged to negotiate the version level of the Remote Desktop Protocol: Dynamic Channel Virtual Channel Extension that is supported. Three different Capabilities PDUs are used to negotiate version-level support.
DYNVC_CAPS_VERSION1 (section 2.2.1.1.1) PDU is sent by a DVC server manager to indicate it supports version 1 of the protocol.
DYNVC_CAPS_VERSION2 (section 2.2.1.1.2) PDU is sent by a DVC server manager to indicate it supports version 2 of the protocol.
DYNVC_CAPS_VERSION3 (section 2.2.1.1.3) PDU is sent by a DVC server manager to indicate it supports version 3 of the protocol.
DYNVC_CAPS_RSP (section 2.2.1.2) PDU is sent by a DVC client manager to acknowledge the version level it supports.
A DVC server manager initializes a DVC environment by sending a DYNVC_CAPS_VERSION1 (section 2.2.1.1.1), a DYNVC_CAPS_VERSION2 (section 2.2.1.1.2), or a DYNVC_CAPS_VERSION3 (section 2.2.1.1.3) PDU to the DVC client manager to indicate the highest version level supported by the server. The client MUST respond with a DYNVC_CAPS_RSP (section 2.2.1.2) PDU that indicates the highest version level supported by the client.
The DVC server manager MUST send a Capabilities message prior to creating a DVC and wait for a response from the client. This happens just once; if capability exchange has already been completed, the channel creation continues. The DVC client manager MUST reply with a DYNVC_CAPS_RSP (section 2.2.1.2) PDU as soon as it receives the server request.