/// <summary> /// Parse TS_SYNCHRONIZE_PDU /// (parser index is updated according to parsed length) /// </summary> /// <param name="data">data to be parsed</param> /// <param name="currentIndex">current parser index</param> /// <returns>TS_SYNCHRONIZE_PDU</returns> private TS_SYNCHRONIZE_PDU ParseTsSynchronizePdu(byte[] data, ref int currentIndex) { TS_SYNCHRONIZE_PDU pdu = new TS_SYNCHRONIZE_PDU(); // TS_SYNCHRONIZE_PDU: shareDataHeader pdu.shareDataHeader = ParseTsShareDataHeader(data, ref currentIndex); // TS_SYNCHRONIZE_PDU: messageType pdu.messageType = (messageType_Values)ParseUInt16(data, ref currentIndex, false); // TS_SYNCHRONIZE_PDU: targetUser pdu.targetUser = ParseUInt16(data, ref currentIndex, false); return pdu; }
private static byte[] EncodeSynchronizeData(TS_SYNCHRONIZE_PDU synchronizePduData) { List<byte> dataBuffer = new List<byte>(); RdpbcgrEncoder.EncodeStructure(dataBuffer, synchronizePduData.shareDataHeader); RdpbcgrEncoder.EncodeStructure(dataBuffer, (ushort)synchronizePduData.messageType); RdpbcgrEncoder.EncodeStructure(dataBuffer, synchronizePduData.targetUser); return dataBuffer.ToArray(); }