The TS_SYNCHRONIZE_PDU structure is a standard T.128 Synchronize PDU (see [T128] section 8.6.1).
file:///C:/ts_dev/TestSuites/MS-RDPBCGR/TestSuite/Src/TD/latest_XMLS_16may/RDPBCGR/ _rfc_ms-rdpbcgr2_1_1_14_1.xml
        /// <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;
        }
Exemplo n.º 2
0
        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();
        }