The Set Keyboard Indicators PDU is sent by the server to synchronize the state of the keyboard toggle keys (Scroll Lock, Num Lock, and so on). It is similar in operation to the Client Synchronize Input Event Notification (see sections and ), but flows in the opposite direction.
file:///C:/ts_dev/TestSuites/MS-RDPBCGR/TestSuite/Src/TD/latest_XMLS_16may/RDPBCGR/ _rfc_ms-rdpbcgr2_1_7_2_1.xml
Inheritance: RdpbcgrServerPdu
        /// <summary>
        /// Decode Set Keyboard Indicators PDU
        /// </summary>
        /// <param name="data">data to be parsed</param>
        /// <param name="decryptedUserData">decrypted user data to be parsed</param>
        /// <param name="type">security header type</param>
        /// <returns>decoded Set Keyboard Indicators PDU</returns>
        public StackPacket DecodeSetKeyboardIndicatorsPDU(
            byte[] data,
            byte[] decryptedUserData,
            SecurityHeaderType type)
        {
            Server_Set_Keyboard_Indicators_Pdu pdu = new Server_Set_Keyboard_Indicators_Pdu();

            // data index
            int dataIndex = 0;

            // SetKeyboardIndicatorsPDU: commonHeader
            pdu.commonHeader = ParseMcsCommonHeader(data, ref dataIndex, type);

            // user data index
            int userDataIndex = 0;

            // SetKeyboardIndicatorsPDU: setKeyBdIndicatorsPduData
            pdu.setKeyBdIndicatorsPduData = ParseTsSetKeyboardIndicatorsPdu(decryptedUserData, ref userDataIndex);

            // Check if data length exceeded expectation
            VerifyDataLength(decryptedUserData.Length, userDataIndex, ConstValue.ERROR_MESSAGE_DATA_LENGTH_EXCEEDED);
            return pdu;
        }
        public override StackPacket Clone()
        {
            Server_Set_Keyboard_Indicators_Pdu cloneKeyboardIndicatorsPdu = new Server_Set_Keyboard_Indicators_Pdu();
            cloneKeyboardIndicatorsPdu.commonHeader = commonHeader.Clone();
            cloneKeyboardIndicatorsPdu.setKeyBdIndicatorsPduData.shareDataHeader =
                setKeyBdIndicatorsPduData.shareDataHeader;
            cloneKeyboardIndicatorsPdu.setKeyBdIndicatorsPduData.UnitId =
                setKeyBdIndicatorsPduData.UnitId;
            cloneKeyboardIndicatorsPdu.setKeyBdIndicatorsPduData.LedFlags =
                setKeyBdIndicatorsPduData.LedFlags;

            return cloneKeyboardIndicatorsPdu;
        }