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); }
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); }