The TS_SET_KEYBOARD_IME_STATUS_PDU structure contains the actual contents of the Set Keyboard IME Status PDU. On RDP 5.0 and later clients the latter two fields are used as input parameters to a Fujitsu Oyayubi specific IME control function of East Asia IME clients.
file:///C:/ts_dev/TestSuites/MS-RDPBCGR/TestSuite/Src/TD/latest_XMLS_16may/RDPBCGR/ _rfc_ms-rdpbcgr2_1_7_2_2_1.xml
        /// <summary>
        /// Parse TS_SET_KEYBOARD_IME_STATUS_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_SET_KEYBOARD_IME_STATUS_PDU</returns>
        private TS_SET_KEYBOARD_IME_STATUS_PDU ParseTsSetKeyboardImeStatusPdu(byte[] data, ref int currentIndex)
        {
            TS_SET_KEYBOARD_IME_STATUS_PDU pdu = new TS_SET_KEYBOARD_IME_STATUS_PDU();

            // TS_SET_KEYBOARD_IME_STATUS_PDU: shareDataHeader
            pdu.shareDataHeader = ParseTsShareDataHeader(data, ref currentIndex);

            // TS_SET_KEYBOARD_IME_STATUS_PDU: UnitId
            pdu.UnitId = ParseUInt16(data, ref currentIndex, false);

            // TS_SET_KEYBOARD_IME_STATUS_PDU: ImeOpen
            pdu.ImeState = ParseUInt32(data, ref currentIndex, false);

            // TS_SET_KEYBOARD_IME_STATUS_PDU: ImeConvMode
            pdu.ImeConvMode = ParseUInt32(data, ref currentIndex, false);

            return pdu;
        }
        private byte[] EncodeKeyboardImeData(TS_SET_KEYBOARD_IME_STATUS_PDU setKeyBdImeStatusPduData)
        {
            List<byte> dataBuffer = new List<byte>();

            RdpbcgrEncoder.EncodeStructure(dataBuffer, setKeyBdImeStatusPduData.shareDataHeader);
            RdpbcgrEncoder.EncodeStructure(dataBuffer, setKeyBdImeStatusPduData.UnitId);
            RdpbcgrEncoder.EncodeStructure(dataBuffer, setKeyBdImeStatusPduData.ImeState);
            RdpbcgrEncoder.EncodeStructure(dataBuffer, setKeyBdImeStatusPduData.ImeConvMode);

            return dataBuffer.ToArray();
        }