The MCS Channel Join Request PDU is an RDP Connection Sequence PDU sent from client to server during the Channel Connection phase (see section 1.3.1.1). It is sent after receiving the MCS Attach User Confirm PDU (section 2.2.1.7). The client uses the MCS Channel Join Request PDU to join the user channel obtained from the Attach User Confirm PDU, the I/O channel and all of the static virtual channels obtained from the Server Network Data structure (section 2.2.1.4.4).
Inheritance: RdpbcgrClientPdu
        /// <summary>
        /// Decode MCS Channel Join Request PDU
        /// </summary>
        /// <param name="data">data to be parsed</param>
        /// <returns>decoded MCS Channel Join Request PDU</returns>
        public StackPacket DecodeMcsChannelJoinRequestPDU(byte[] data)
        {
            // initialize
            int currentIndex = 0;
            Client_MCS_Channel_Join_Request pdu = new Client_MCS_Channel_Join_Request();

            // McsChannelJoinConfirm: TpktHeader
            pdu.tpktHeader = ParseTpktHeader(data, ref currentIndex);

            // McsChannelJoinConfirm: x224Data
            pdu.x224Data = ParseX224Data(data, ref currentIndex);

            // McsChannelJoinConfirm: channelJoinConfirm
            ChannelJoinRequest channelJoinReq = (ChannelJoinRequest)ParseMcsDomainPdu(data, ref currentIndex).GetData();
            pdu.userChannelId = (long)channelJoinReq.initiator.Value;
            pdu.mcsChannelId = (long)channelJoinReq.channelId.Value;

            // Check if data length exceeded expectation
            VerifyDataLength(data.Length, currentIndex, ConstValue.ERROR_MESSAGE_DATA_LENGTH_EXCEEDED);
            return pdu;
        }
 /// <summary>
 /// 2.2.1.8
 /// </summary>
 /// <param name="channelJoinPdu"></param>
 public void VerifyPdu(Client_MCS_Channel_Join_Request channelJoinPdu)
 {
 }
Esempio n. 3
0
        /// <summary>
        /// Create an instance of the class that is identical to the current PDU. 
        /// </summary>
        /// <returns>The new instance.</returns>
        public override StackPacket Clone()
        {
            Client_MCS_Channel_Join_Request cloneMcsChanneelJoinPdu = new Client_MCS_Channel_Join_Request(context);

            cloneMcsChanneelJoinPdu.mcsChannelId = mcsChannelId;
            cloneMcsChanneelJoinPdu.userChannelId = userChannelId;
            cloneMcsChanneelJoinPdu.tpktHeader = tpktHeader;
            cloneMcsChanneelJoinPdu.x224Data = x224Data;

            return cloneMcsChanneelJoinPdu;
        }