Microsoft.Protocols.TestTools.StackSdk.RemoteDesktop.Rdpbcgr.Server_Redirection_Pdu.EncodeRedirectionData C# (CSharp) Method

EncodeRedirectionData() private method

private EncodeRedirectionData ( RDP_SERVER_REDIRECTION_PACKET serverRedirectionPdu ) : byte[]
serverRedirectionPdu RDP_SERVER_REDIRECTION_PACKET
return byte[]
        private byte[] EncodeRedirectionData(RDP_SERVER_REDIRECTION_PACKET serverRedirectionPdu)
        {
            List<byte> dataBuffer = new List<byte>();

            RdpbcgrEncoder.EncodeStructure(dataBuffer, serverRedirectionPdu.Flags);
            RdpbcgrEncoder.EncodeStructure(dataBuffer, serverRedirectionPdu.Length);
            RdpbcgrEncoder.EncodeStructure(dataBuffer, serverRedirectionPdu.SessionId);
            RdpbcgrEncoder.EncodeStructure(dataBuffer, (uint)serverRedirectionPdu.RedirFlags);
            if (serverRedirectionPdu.TargetNetAddressLength > 0)
            {
                RdpbcgrEncoder.EncodeStructure(dataBuffer, serverRedirectionPdu.TargetNetAddressLength);
                RdpbcgrEncoder.EncodeBytes(dataBuffer, serverRedirectionPdu.TargetNetAddress);
            }
            if (serverRedirectionPdu.LoadBalanceInfoLength > 0)
            {
                RdpbcgrEncoder.EncodeStructure(dataBuffer, serverRedirectionPdu.LoadBalanceInfoLength);
                RdpbcgrEncoder.EncodeBytes(dataBuffer, serverRedirectionPdu.LoadBalanceInfo);
            }
            if (serverRedirectionPdu.UserNameLength > 0)
            {
                RdpbcgrEncoder.EncodeStructure(dataBuffer, serverRedirectionPdu.UserNameLength);
                RdpbcgrEncoder.EncodeBytes(dataBuffer, serverRedirectionPdu.UserName);
            }
            if (serverRedirectionPdu.DomainLength > 0)
            {
                RdpbcgrEncoder.EncodeStructure(dataBuffer, serverRedirectionPdu.DomainLength);
                RdpbcgrEncoder.EncodeBytes(dataBuffer, serverRedirectionPdu.Domain);
            }
            if (serverRedirectionPdu.PasswordLength > 0)
            {
                RdpbcgrEncoder.EncodeStructure(dataBuffer, serverRedirectionPdu.PasswordLength);
                RdpbcgrEncoder.EncodeBytes(dataBuffer, serverRedirectionPdu.Password);
            }
            if (serverRedirectionPdu.TargetFQDNLength > 0)
            {
                RdpbcgrEncoder.EncodeStructure(dataBuffer, serverRedirectionPdu.TargetFQDNLength);
                RdpbcgrEncoder.EncodeBytes(dataBuffer, serverRedirectionPdu.TargetFQDN);
            }
            if (serverRedirectionPdu.TargetNetBiosNameLength > 0)
            {
                RdpbcgrEncoder.EncodeStructure(dataBuffer, serverRedirectionPdu.TargetNetBiosNameLength);
                RdpbcgrEncoder.EncodeBytes(dataBuffer, serverRedirectionPdu.TargetNetBiosName);
            }
            if (serverRedirectionPdu.TargetNetAddressesLength > 0)
            {
                RdpbcgrEncoder.EncodeStructure(dataBuffer, serverRedirectionPdu.TargetNetAddressesLength);
                RdpbcgrEncoder.EncodeBytes(dataBuffer, EncodeTargetNetAddresses(serverRedirectionPdu.TargetNetAddresses));
            }
            RdpbcgrEncoder.EncodeBytes(dataBuffer, serverRedirectionPdu.Pad);

            return dataBuffer.ToArray();
        }