private static byte[] EncodePersistentKeyListData(TS_BITMAPCACHE_PERSISTENT_LIST_PDU persistentKeyListPduData)
{
List<byte> dataBuffer = new List<byte>();
if (persistentKeyListPduData != null)
{
RdpbcgrEncoder.EncodeStructure(dataBuffer, persistentKeyListPduData.shareDataHeader);
RdpbcgrEncoder.EncodeStructure(dataBuffer, persistentKeyListPduData.numEntriesCache0);
RdpbcgrEncoder.EncodeStructure(dataBuffer, persistentKeyListPduData.numEntriesCache1);
RdpbcgrEncoder.EncodeStructure(dataBuffer, persistentKeyListPduData.numEntriesCache2);
RdpbcgrEncoder.EncodeStructure(dataBuffer, persistentKeyListPduData.numEntriesCache3);
RdpbcgrEncoder.EncodeStructure(dataBuffer, persistentKeyListPduData.numEntriesCache4);
RdpbcgrEncoder.EncodeStructure(dataBuffer, persistentKeyListPduData.totalEntriesCache0);
RdpbcgrEncoder.EncodeStructure(dataBuffer, persistentKeyListPduData.totalEntriesCache1);
RdpbcgrEncoder.EncodeStructure(dataBuffer, persistentKeyListPduData.totalEntriesCache2);
RdpbcgrEncoder.EncodeStructure(dataBuffer, persistentKeyListPduData.totalEntriesCache3);
RdpbcgrEncoder.EncodeStructure(dataBuffer, persistentKeyListPduData.totalEntriesCache4);
RdpbcgrEncoder.EncodeStructure(dataBuffer, (byte)persistentKeyListPduData.bBitMask);
RdpbcgrEncoder.EncodeStructure(dataBuffer, persistentKeyListPduData.Pad2);
RdpbcgrEncoder.EncodeStructure(dataBuffer, persistentKeyListPduData.Pad3);
foreach (TS_BITMAPCACHE_PERSISTENT_LIST_ENTRY entry in persistentKeyListPduData.entries)
{
RdpbcgrEncoder.EncodeStructure(dataBuffer, entry);
}
}
return dataBuffer.ToArray();
}