Ejemplo n.º 1
0
        internal static void channel_process(int channelID, RdpPacket data)
        {
            data.ReadLittleEndian32();
            var num = (CHANNEL_FLAG)data.ReadLittleEndian32();

            if (num.HasFlag(CHANNEL_FLAG.CHANNEL_FLAG_FIRST))
            {
                m_FullPacket = new RdpPacket();
            }

            m_FullPacket.Append(data);

            if (num.HasFlag(CHANNEL_FLAG.CHANNEL_FLAG_LAST))
            {
                m_FullPacket.Position = 0L;

                foreach (IVirtualChannel channel in m_Channels)
                {
                    if (channel.ChannelID == channelID)
                    {
                        channel.channel_process(m_FullPacket);
                    }
                }
            }
        }