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

SwitchDecodeMcsDataPDU() private method

Switch Decode MCS Data PDU
private SwitchDecodeMcsDataPDU ( byte data, byte decryptedUserData, SecurityHeaderType securityHeaderType ) : StackPacket
data byte data to be parsed
decryptedUserData byte decrypted user data
securityHeaderType SecurityHeaderType security header type
return StackPacket
        private StackPacket SwitchDecodeMcsDataPDU(
            byte[] data,
            byte[] decryptedUserData,
            SecurityHeaderType securityHeaderType)
        {
            // Parser index
            int currentIndex = 0;

            // Share data header
            TS_SHAREDATAHEADER dataHeader = ParseTsShareDataHeader(decryptedUserData, ref currentIndex);

            // Switch decoder by pduType2
            StackPacket pdu = null;
            switch (dataHeader.pduType2)
            {
                // Control PDU
                case pduType2_Values.PDUTYPE2_CONTROL:
                    pdu = DecodeControlPDU(data, decryptedUserData, securityHeaderType);
                    break;

                case pduType2_Values.PDUTYPE2_INPUT:
                    pdu = DecodeSlowPathInputEventPDU(data, decryptedUserData, securityHeaderType);
                    break;

                // Synchronize PDU
                case pduType2_Values.PDUTYPE2_SYNCHRONIZE:
                    pdu = DecodeSynchronizePDU(data, decryptedUserData, securityHeaderType);
                    break;

                case pduType2_Values.PDUTYPE2_REFRESH_RECT:
                    pdu = DecodeRefreshRectPDU(data, decryptedUserData, securityHeaderType);
                    break;

                case pduType2_Values.PDUTYPE2_SUPPRESS_OUTPUT:
                    pdu = DecodeSuppressOutputPDU(data, decryptedUserData, securityHeaderType);
                    break;

                case pduType2_Values.PDUTYPE2_SHUTDOWN_REQUEST:
                    pdu = DecodeShutdownRequestPDU(data, decryptedUserData, securityHeaderType);
                    break;

                case pduType2_Values.PDUTYPE2_FONTLIST:
                    pdu = DecodeFontListPDU(data, decryptedUserData, securityHeaderType);
                    break;

                case pduType2_Values.PDUTYPE2_BITMAPCACHE_PERSISTENT_LIST:
                    pdu = DecodePersistentKeyListPDU(data, decryptedUserData, securityHeaderType);
                    break;

                case pduType2_Values.PDUTYPE2_FRAME_ACKNOWLEDGE:
                    pdu = DecodeFrameAcknowledgePDU(data, decryptedUserData, securityHeaderType);
                    break;

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