public override byte[] ToBytes()
{
List<byte> buffer = new List<byte>();
RdpbcgrEncoder.EncodeStructure(buffer, shareDataHeader);
RdpbcgrEncoder.EncodeStructure(buffer, (uint)statusCode);
byte[] dataBuffer = buffer.ToArray();
List<byte> totalBuffer = new List<byte>();
RdpbcgrEncoder.EncodeSlowPathPdu(totalBuffer, commonHeader, dataBuffer, serverSessionContext);
byte[] encodedBytes = RdpbcgrUtility.ToBytes(totalBuffer);
// ToDo: Ugly dump message code here
// ETW Provider Dump Code
bool isEncrypted = serverSessionContext.RdpEncryptionLevel != EncryptionLevel.ENCRYPTION_LEVEL_NONE && serverSessionContext.RdpEncryptionLevel != EncryptionLevel.ENCRYPTION_LEVEL_LOW;
RdpbcgrUtility.ETWProviderDump(this.GetType().Name, encodedBytes, isEncrypted, dataBuffer);
return encodedBytes;
}