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

Clone() public method

public Clone ( ) : StackPacket
return StackPacket
        public override StackPacket Clone()
        {
            Server_Redirection_Pdu pduClone = new Server_Redirection_Pdu();
            pduClone.commonHeader = commonHeader;
            pduClone.serverRedirectionPdu = new RDP_SERVER_REDIRECTION_PACKET();
            pduClone.serverRedirectionPdu.Domain = RdpbcgrUtility.CloneByteArray(serverRedirectionPdu.Domain);
            pduClone.serverRedirectionPdu.DomainLength = serverRedirectionPdu.DomainLength;
            pduClone.serverRedirectionPdu.Flags = serverRedirectionPdu.Flags;
            pduClone.serverRedirectionPdu.Length = serverRedirectionPdu.Length;
            pduClone.serverRedirectionPdu.LoadBalanceInfo = RdpbcgrUtility.CloneByteArray(serverRedirectionPdu.LoadBalanceInfo);
            pduClone.serverRedirectionPdu.LoadBalanceInfoLength = serverRedirectionPdu.LoadBalanceInfoLength;
            pduClone.serverRedirectionPdu.Pad = RdpbcgrUtility.CloneByteArray(serverRedirectionPdu.Pad);
            pduClone.serverRedirectionPdu.Password = RdpbcgrUtility.CloneByteArray(serverRedirectionPdu.Password);
            pduClone.serverRedirectionPdu.PasswordLength = serverRedirectionPdu.PasswordLength;
            pduClone.serverRedirectionPdu.RedirFlags = serverRedirectionPdu.RedirFlags;
            pduClone.serverRedirectionPdu.SessionId = serverRedirectionPdu.SessionId;
            pduClone.serverRedirectionPdu.TargetFQDN = RdpbcgrUtility.CloneByteArray(serverRedirectionPdu.TargetFQDN);
            pduClone.serverRedirectionPdu.TargetFQDNLength = serverRedirectionPdu.TargetFQDNLength;
            pduClone.serverRedirectionPdu.TargetNetAddress = RdpbcgrUtility.CloneByteArray(serverRedirectionPdu.TargetNetAddress);
            pduClone.serverRedirectionPdu.TargetNetAddresses.addressCount = serverRedirectionPdu.TargetNetAddresses.addressCount;
            if (serverRedirectionPdu.TargetNetAddresses.address != null)
            {
                pduClone.serverRedirectionPdu.TargetNetAddresses.address =
                    new TARGET_NET_ADDRESS[serverRedirectionPdu.TargetNetAddresses.address.Length];
                for (int i = 0; i < serverRedirectionPdu.TargetNetAddresses.address.Length; ++i)
                {
                    pduClone.serverRedirectionPdu.TargetNetAddresses.address[i].address =
                        RdpbcgrUtility.CloneByteArray(serverRedirectionPdu.TargetNetAddresses.address[i].address);
                    pduClone.serverRedirectionPdu.TargetNetAddresses.address[i].addressLength =
                        serverRedirectionPdu.TargetNetAddresses.address[i].addressLength;
                }
            }
            pduClone.serverRedirectionPdu.TargetNetAddressesLength = serverRedirectionPdu.TargetNetAddressesLength;
            pduClone.serverRedirectionPdu.TargetNetAddressLength = serverRedirectionPdu.TargetNetAddressLength;
            pduClone.serverRedirectionPdu.TargetNetBiosName =
                RdpbcgrUtility.CloneByteArray(serverRedirectionPdu.TargetNetBiosName);
            pduClone.serverRedirectionPdu.TargetNetBiosNameLength =
                serverRedirectionPdu.TargetNetBiosNameLength;
            pduClone.serverRedirectionPdu.UserName = RdpbcgrUtility.CloneByteArray(serverRedirectionPdu.UserName);
            pduClone.serverRedirectionPdu.UserNameLength = serverRedirectionPdu.UserNameLength;

            return pduClone;
        }