Esempio n. 1
0
        public static TS_FP_UPDATE_PDU CreateFPUpdatePDU(RdpbcgrServerSessionContext context, TS_FP_UPDATE update)
        {
            TS_FP_UPDATE_PDU fpOutput = new TS_FP_UPDATE_PDU(context);

            fpOutput.fpOutputHeader = new nested_TS_FP_UPDATE_PDU_fpOutputHeader();

            fpOutput.dataSignature = null;
            fpOutput.length1       = 0;
            fpOutput.length2       = 0;

            fpOutput.fpOutputUpdates    = new TS_FP_UPDATE[1];
            fpOutput.fpOutputUpdates[0] = update;

            return(fpOutput);
        }
Esempio n. 2
0
        public static TS_FP_UPDATE_PDU CreateFPUpdatePDU(RdpbcgrServerSessionContext context, TS_FP_UPDATE update)
        {
            TS_FP_UPDATE_PDU fpOutput = new TS_FP_UPDATE_PDU(context);

            fpOutput.fpOutputHeader = (byte)(((int)nested_TS_FP_UPDATE_PDU_fpOutputHeader_actionCode_Values.FASTPATH_OUTPUT_ACTION_FASTPATH & 0x03)
                                             | ((int)((int)reserved_Values.V1 & 0x0f) << 2));
            fpOutput.dataSignature = null;
            fpOutput.length1       = 0;
            fpOutput.length2       = 0;

            fpOutput.fpOutputUpdates    = new TS_FP_UPDATE[1];
            fpOutput.fpOutputUpdates[0] = update;

            return(fpOutput);
        }
        /// <summary>
        /// Expect and verifies fast-path output events during a specific timespan
        /// </summary>
        /// <param name="timeout"></param>
        public void ExpectFastpathOutputs(TimeSpan timeout)
        {
            Dictionary <string, bool> receiveStatics = new Dictionary <string, bool>();
            DateTime endtime = DateTime.Now + timeout;

            while (timeout.TotalMilliseconds > 0)
            {
                TS_FP_UPDATE_PDU pdu = ExpectPacket <TS_FP_UPDATE_PDU>(timeout);
                if (pdu != null)
                {
                    foreach (TS_FP_UPDATE update in pdu.fpOutputUpdates)
                    {
                        if (update is TS_FP_UPDATE_PALETTE)
                        {
                            receiveStatics["TS_FP_UPDATE_PALETTE"] = true;
                        }
                        else if (update is TS_FP_UPDATE_ORDERS)
                        {
                            receiveStatics["TS_FP_UPDATE_ORDERS"] = true;
                        }
                        else if (update is TS_FP_UPDATE_BITMAP)
                        {
                            receiveStatics["TS_FP_UPDATE_BITMAP"] = true;
                        }
                        else if (update is TS_FP_UPDATE_SYNCHRONIZE)
                        {
                            receiveStatics["TS_FP_UPDATE_SYNCHRONIZE"] = true;
                        }
                        else if (update is TS_FP_POINTERPOSATTRIBUTE)
                        {
                            receiveStatics["TS_FP_POINTERPOSATTRIBUTE"] = true;
                        }
                        else if (update is TS_FP_SYSTEMPOINTERHIDDENATTRIBUTE)
                        {
                            receiveStatics["TS_FP_SYSTEMPOINTERHIDDENATTRIBUTE"] = true;
                        }
                        else if (update is TS_FP_SYSTEMPOINTERDEFAULTATTRIBUTE)
                        {
                            receiveStatics["TS_FP_SYSTEMPOINTERDEFAULTATTRIBUTE"] = true;
                        }
                        else if (update is TS_FP_COLORPOINTERATTRIBUTE)
                        {
                            receiveStatics["TS_FP_COLORPOINTERATTRIBUTE"] = true;
                        }
                        else if (update is TS_FP_POINTERATTRIBUTE)
                        {
                            receiveStatics["TS_FP_POINTERATTRIBUTE"] = true;
                        }
                        else if (update is TS_FP_CACHEDPOINTERATTRIBUTE)
                        {
                            receiveStatics["TS_FP_CACHEDPOINTERATTRIBUTE"] = true;
                        }
                        else if (update is TS_FP_SURFCMDS)
                        {
                            receiveStatics["TS_FP_SURFCMDS"] = true;
                        }
                    }
                }
                timeout = endtime - DateTime.Now;
            }
            string log = "Received TS_FP_UPDATE_PDU structures: ";

            foreach (string structName in receiveStatics.Keys)
            {
                log += "" + structName + "\n";
            }
            Site.Log.Add(LogEntryKind.Comment, log);
        }