Microsoft.Protocols.TestTools.StackSdk.RemoteDesktop.Rdpbcgr.RdpbcgrDecoder.SwitchDecodeMcsDomainPDU C# (CSharp) Method

SwitchDecodeMcsDomainPDU() private method

Switch Decode MCS Domain PDU
private SwitchDecodeMcsDomainPDU ( byte data ) : StackPacket
data byte data to be parsed
return StackPacket
        private StackPacket SwitchDecodeMcsDomainPDU(byte[] data)
        {
            // Skip TpktHeader and X224Data
            int tempIndex = ConstValue.TPKT_HEADER_AND_X224_DATA_LENGTH;

            // Decode Domain MCS PDU
            DomainMCSPDU domainPdu = ParseMcsDomainPdu(data, ref tempIndex);

            // Switch decoders by pdu element name
            StackPacket pdu = null;
            switch (domainPdu.ElemName)
            {
                // Channel Join Confirm PDU
                case ConstValue.MCS_DOMAIN_PDU_NAME_CHANNEL_JOIN_CONFIRM:
                    pdu = DecodeMcsChannelJoinConfirmPDU(data);
                    break;

                // Send Data Indication PDU
                case ConstValue.MCS_DOMAIN_PDU_NAME_SEND_DATA_INDICATION:
                    pdu = DecodeMcsSendDataIndicationPDU(data, domainPdu);
                    break;

                // Attach User Confirm PDU
                case ConstValue.MCS_DOMAIN_PDU_NAME_ATTACH_USER_CONFIRM:
                    pdu = DecodeMcsAttachUserConfirmPDU(data);
                    break;

                // Disconnect Provider Ultimatum PDU
                case ConstValue.MCS_DOMAIN_PDU_NAME_DISCONNECT_PROVIDER_ULTIMATUM:
                    pdu = DecodeDisconnectProviderUltimatumPDU(data);
                    break;

                default:
                    throw new FormatException(ConstValue.ERROR_MESSAGE_ENUM_UNRECOGNIZED);
            }
            return pdu;
        }
RdpbcgrDecoder