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

Clone() public method

Create an instance of the class that is identical to the current PDU.
public Clone ( ) : StackPacket
return StackPacket
        public override StackPacket Clone()
        {
            Client_Info_Pdu cloneClientInfoPdu = new Client_Info_Pdu(context);

            cloneClientInfoPdu.commonHeader = commonHeader.Clone();

            if (infoPacket != null)
            {
                cloneClientInfoPdu.infoPacket = new TS_INFO_PACKET();
                cloneClientInfoPdu.infoPacket.AlternateShell = infoPacket.AlternateShell;
                cloneClientInfoPdu.infoPacket.cbAlternateShell = infoPacket.cbAlternateShell;
                cloneClientInfoPdu.infoPacket.cbDomain = infoPacket.cbDomain;
                cloneClientInfoPdu.infoPacket.cbPassword = infoPacket.cbPassword;
                cloneClientInfoPdu.infoPacket.cbUserName = infoPacket.cbUserName;
                cloneClientInfoPdu.infoPacket.cbWorkingDir = infoPacket.cbWorkingDir;
                cloneClientInfoPdu.infoPacket.CodePage = infoPacket.CodePage;
                cloneClientInfoPdu.infoPacket.Domain = infoPacket.Domain;
                cloneClientInfoPdu.infoPacket.Password = infoPacket.Password;
                cloneClientInfoPdu.infoPacket.UserName = infoPacket.UserName;
                cloneClientInfoPdu.infoPacket.WorkingDir = infoPacket.WorkingDir;
                cloneClientInfoPdu.infoPacket.flags = infoPacket.flags;

                if (infoPacket.extraInfo != null)
                {
                    cloneClientInfoPdu.infoPacket.extraInfo = new TS_EXTENDED_INFO_PACKET();
                    if (infoPacket.extraInfo.autoReconnectCookie != null)
                    {
                        cloneClientInfoPdu.infoPacket.extraInfo.autoReconnectCookie = new ARC_CS_PRIVATE_PACKET();
                        cloneClientInfoPdu.infoPacket.extraInfo.autoReconnectCookie.cbLen =
                            infoPacket.extraInfo.autoReconnectCookie.cbLen;
                        cloneClientInfoPdu.infoPacket.extraInfo.autoReconnectCookie.LogonId =
                            infoPacket.extraInfo.autoReconnectCookie.LogonId;
                        cloneClientInfoPdu.infoPacket.extraInfo.autoReconnectCookie.SecurityVerifier =
                            RdpbcgrUtility.CloneByteArray(infoPacket.extraInfo.autoReconnectCookie.SecurityVerifier);
                        cloneClientInfoPdu.infoPacket.extraInfo.autoReconnectCookie.Version =
                            infoPacket.extraInfo.autoReconnectCookie.Version;
                    }

                    cloneClientInfoPdu.infoPacket.extraInfo.cbAutoReconnectLen =
                        infoPacket.extraInfo.cbAutoReconnectLen;
                    cloneClientInfoPdu.infoPacket.extraInfo.cbClientAddress = infoPacket.extraInfo.cbClientAddress;
                    cloneClientInfoPdu.infoPacket.extraInfo.cbClientDir = infoPacket.extraInfo.cbClientDir;
                    cloneClientInfoPdu.infoPacket.extraInfo.clientAddress = infoPacket.extraInfo.clientAddress;
                    cloneClientInfoPdu.infoPacket.extraInfo.clientAddressFamily =
                        infoPacket.extraInfo.clientAddressFamily;
                    cloneClientInfoPdu.infoPacket.extraInfo.clientDir = infoPacket.extraInfo.clientDir;
                    cloneClientInfoPdu.infoPacket.extraInfo.clientSessionId = infoPacket.extraInfo.clientSessionId;
                    cloneClientInfoPdu.infoPacket.extraInfo.clientTimeZone = infoPacket.extraInfo.clientTimeZone;
                    cloneClientInfoPdu.infoPacket.extraInfo.performanceFlags = infoPacket.extraInfo.performanceFlags;
                    cloneClientInfoPdu.infoPacket.extraInfo.reserved1 = infoPacket.extraInfo.reserved1;
                    cloneClientInfoPdu.infoPacket.extraInfo.reserved2 = infoPacket.extraInfo.reserved2;

                    cloneClientInfoPdu.infoPacket.extraInfo.cbDynamicDSTTimeZoneKeyName = infoPacket.extraInfo.cbDynamicDSTTimeZoneKeyName;
                    if (infoPacket.extraInfo.cbDynamicDSTTimeZoneKeyName != null && infoPacket.extraInfo.cbDynamicDSTTimeZoneKeyName.actualData > 0)
                    {
                        cloneClientInfoPdu.infoPacket.extraInfo.dynamicDSTTimeZoneKeyName = (string)infoPacket.extraInfo.dynamicDSTTimeZoneKeyName.Clone();
                    }
                    cloneClientInfoPdu.infoPacket.extraInfo.dynamicDaylightTimeDisabled = infoPacket.extraInfo.dynamicDaylightTimeDisabled;
                }

            }

            return cloneClientInfoPdu;
        }