public override StackPacket Clone()
{
Enhanced_Security_Server_Redirection_Pdu pduClone = new Enhanced_Security_Server_Redirection_Pdu();
pduClone.commonHeader = commonHeader;
pduClone.shareControlHeader = shareControlHeader;
pduClone.pad = pad;
pduClone.pad1Octet = RdpbcgrUtility.CloneByteArray(pad1Octet);
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;
}