private byte[] EncodeLogonLongInfo(TS_LOGON_INFO_VERSION_2 logonInfo)
{
List<byte> dataBuffer = new List<byte>();
RdpbcgrEncoder.EncodeStructure(dataBuffer, (ushort)logonInfo.Version);
RdpbcgrEncoder.EncodeStructure(dataBuffer, logonInfo.Size);
RdpbcgrEncoder.EncodeStructure(dataBuffer, logonInfo.SessionId);
RdpbcgrEncoder.EncodeStructure(dataBuffer, logonInfo.cbDomain);
RdpbcgrEncoder.EncodeStructure(dataBuffer, logonInfo.cbUserName);
RdpbcgrEncoder.EncodeBytes(dataBuffer, logonInfo.Pad);
RdpbcgrEncoder.EncodeUnicodeString(dataBuffer, logonInfo.Domain, logonInfo.cbDomain);
RdpbcgrEncoder.EncodeUnicodeString(dataBuffer, logonInfo.UserName, logonInfo.cbUserName);
return dataBuffer.ToArray();
}