2.2 Message Syntax

The Remote Desktop Protocol: Dynamic Virtual Channel Extension consists of the following five types of messages exchanged between the server and the client.

  • Capability Negotiation message

  • Channel Open message

  • Channel DataFirst message and DataFirst Compressed message

  • Channel Data message and Data Compressed message

  • Channel Close message

Each PDU has the same 1-byte header with the optionalFields field following it. The cbId and Cmd fields are common to all PDUs. The data following the PDU header depends on the type of the message and is addressed in the following sections.


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

cbId

Sp

Cmd

optionalFields (variable)

...

cbId (2 bits): Indicates the length of the ChannelId field.

Value

Meaning

0x00

The ChannelId is 1 byte wide.

0x01

The ChannelId is 2 bytes wide.

0x02

The ChannelId is 4 bytes wide.

0x03

Invalid value.

Sp (2 bits): The value and meaning depend on the Cmd field.

Cmd (4 bits): Indicates the PDU type and MUST be set to one of the following values.

Value

Meaning

0x01

The message contained in the optionalFields field is a Create Request PDU (section 2.2.2.1) or a Create Response PDU (section 2.2.2.2).

0x02

The message contained in the optionalFields field is a Data First PDU (section 2.2.3.1).

0x03

The message contained in the optionalFields field is a Data PDU (section 2.2.3.2).

0x04

The message contained in the optionalFields field is a Close Request PDU (section 2.2.4) or a Close Response PDU (section 2.2.4).

0x05

The message contained in the optionalFields field is a Capability Request PDU (section 2.2.1.1) or a Capabilities Response PDU (section 2.2.1.2).

0x06

The message contained in the optionalFields field is a Data First Compressed PDU (section 2.2.3.3).

0x07

The message contained in the optionalFields field is a Data Compressed PDU (section 2.2.3.4).

0x08

The message contained in the optionalFields field is a Soft-Sync Request PDU (section 2.2.5.1).

0x09

The message contained in the optionalFields field is a Soft-Sync Response PDU (section 2.2.5.2).

optionalFields (variable): The data following the message header depends on the type of the message and is addressed in the following sections.