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

SwitchDecodeMcsDomainPDU() private method

Switch Decode MCS Domain PDU
private SwitchDecodeMcsDomainPDU ( RdpbcgrServerSessionContext serverSessionContext, byte data ) : StackPacket
serverSessionContext RdpbcgrServerSessionContext the server session context
data byte data to be parsed
return StackPacket
        private StackPacket SwitchDecodeMcsDomainPDU(RdpbcgrServerSessionContext serverSessionContext, 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)
            {
                // Erect Domain Request PDU
                case ConstValue.MCS_DOMAIN_PDU_NAME_ERECT_DOMAIN_REQUEST:
                    pdu = DecodeMcsErectDomainRequestPDU(data);
                    break;

                // Attach User Request PDU
                case ConstValue.MCS_DOMAIN_PDU_NAME_ATTACH_USER_REQUEST:
                    pdu = DecodeMcsAttachUserRequestPDU(data);
                    break;

                // Channel Join Request PDU
                case ConstValue.MCS_DOMAIN_PDU_NAME_CHANNEL_JOIN_REQUEST:
                    pdu = DecodeMcsChannelJoinRequestPDU(data);
                    break;

                // Send Data Request PDU
                case ConstValue.MCS_DOMAIN_PDU_NAME_SEND_DATA_REQUEST:
                    pdu = DecodeMcsSendDataRequestPDU(serverSessionContext, data, domainPdu);
                    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;
        }
RdpbcgrServerDecoder