public override byte[] ToBytes()
{
List<byte> buffer = new List<byte>();
RdpbcgrEncoder.EncodeStructure(buffer, shareDataHeader);
RdpbcgrEncoder.EncodeStructure(buffer, monitorCount);
if (monitorDefArray != null)
{
for (int i = 0; i < monitorDefArray.Length; ++i)
{
RdpbcgrEncoder.EncodeStructure(buffer, monitorDefArray[i].left);
RdpbcgrEncoder.EncodeStructure(buffer, monitorDefArray[i].top);
RdpbcgrEncoder.EncodeStructure(buffer, monitorDefArray[i].right);
RdpbcgrEncoder.EncodeStructure(buffer, monitorDefArray[i].bottom);
RdpbcgrEncoder.EncodeStructure(buffer, (uint)monitorDefArray[i].flags);
}
}
byte[] dataBuffer = buffer.ToArray();
List<byte> totalBuffer = new List<byte>();
RdpbcgrEncoder.EncodeSlowPathPdu(totalBuffer, commonHeader, dataBuffer, serverSessionContext);
return RdpbcgrUtility.ToBytes(totalBuffer);
}