3.2.5.3.8 Sending MCS Channel Join Request PDU(s)

The structure and fields of the MCS Channel Join Request PDU are specified in section 2.2.1.8.

Multiple MCS Channel Join Request PDUs are sent to join the following channels:

  1. User Channel (the MCS channel ID is stored in the User Channel ID store (section 3.2.1.5)).

  2. I/O channel (the MCS channel ID is stored in the I/O Channel ID store (section 3.2.1.3)).

  3. Message channel, if the Message Channel ID is non-zero (the MCS channel ID is stored in the Message Channel ID store (section 3.2.1.4)).

  4. Static Virtual Channels (the MCS channel IDs are stored in the Static Virtual Channel IDs store (section 3.2.1.2)).

The MCS Channel Join Request PDUs are sent sequentially. The first PDU is sent after receiving the MCS Attach User Confirm PDU (section 2.2.1.7) and subsequent PDUs are sent after receiving the MCS Channel Join Confirm PDU (section 2.2.1.9) for the previous request. Sending of the MCS Channel Join Request PDUs MUST continue until all channels have been successfully joined.

The tpktHeader field is initialized as specified in [T123] section 8, while the x224Data field (which contains an X.224 Class 0 Data TPDU) is initialized as specified in [X224] section 13.7.

The MCS Channel Join Request PDU (embedded within the mcsCJrq field) is specified in [T125] section 7, parts 6 and 10. The initiator field is initialized with the User Channel ID obtained during the processing of the MCS Attach User Confirm PDU and stored in the User Channel ID store. The channelId field is initialized with the MCS channel ID of the channel that is being joined.

If Enhanced RDP Security (section 5.4) is in effect, the External Security Protocol (section 5.4.5) MUST be used to encrypt the entire PDU and generate a verification digest before the PDU is transmitted over the wire.

If the client set the RNS_UD_CS_SUPPORT_SKIP_CHANNELJOIN flag in the earlyCapabilityFlags field of the Client Core Data (section 2.2.1.3.2), and the server set the RNS_UD_SC_SKIP_CHANNELJOIN_SUPPORTED flag in earlyCapabilityFlags field of the Server Core Data (section 2.2.1.4.2), then the MCS Channel Join Request PDUs (section 2.2.1.8) and the MCS Channel Join Confirm PDUs (section 2.2.1.9) SHOULD be skipped to reduce the connection time. Upon reception of the MCS Attach User Confirm PDU (section 2.2.1.7) all the MCS channels (the user channel, the I/O channel, the message channel, and all static virtual channels) SHOULD be considered as fully joined by the client. The client SHOULD NOT send any MCS Channel Join Request PDUs to server and SHOULD proceed to the RDP Security Commencement phase (section 1.3.1.1).