Example #1
0
        /// <summary>
        /// Start RDP connection
        /// </summary>
        private void StartRDPConnection()
        {
            #region Trigger client to connect

            //Trigger client to connect.
            this.TestSite.Log.Add(LogEntryKind.Comment, "Triggering SUT to initiate a RDP connection to server.");
            triggerClientRDPConnect(transportProtocol, true);
            #endregion

            #region RDPBCGR Connection

            // Waiting for the transport level connection request.
            this.TestSite.Log.Add(LogEntryKind.Comment, "Expecting the transport layer connection request.");
            this.rdpbcgrAdapter.ExpectTransportConnection(RDPSessionType.Normal);

            //Set Server Capability with RomoteFX codec supported.
            this.TestSite.Log.Add(LogEntryKind.Comment, "Setting Server RDPRFX Capability.");
            setServerCapabilitiesWithRemoteFxSupported();

            // Waiting for the RDP connection sequence.
            this.TestSite.Log.Add(LogEntryKind.Comment, "Establishing RDP connection.");
            this.rdpbcgrAdapter.EstablishRDPConnection(selectedProtocol, enMethod, enLevel, true, false, rdpServerVersion);

            this.TestSite.Log.Add(LogEntryKind.Comment, "Sending Server Save Session Info PDU to SUT to notify user has logged on.");
            this.rdpbcgrAdapter.ServerSaveSessionInfo(LogonNotificationType.UserLoggedOn, ErrorNotificationType_Values.LOGON_FAILED_OTHER);

            #endregion

            rdpedycServer = new RdpedycServer(this.rdpbcgrAdapter.ServerStack, this.rdpbcgrAdapter.SessionContext);
            rdpedycServer.ExchangeCapabilities(waitTime);
            if (notificationType == NotificationType.SurfaceManagementCommand)
            {
                this.rdpegfxAdapter = this.TestSite.GetAdapter <IRdpegfxAdapter>();
                this.rdpegfxAdapter.Reset();
                this.rdprfxAdapter = null;
                // RDPEGFX capability exchange
                RDPEGFX_CapabilityExchange();
                this.rdpedispAdapter.AttachRdpbcgrAdapter(this.rdpbcgrAdapter);
                this.rdpedispAdapter.AttachRdpegfxAdapter(rdpegfxAdapter);
            }
            else
            {
                this.rdprfxAdapter = this.TestSite.GetAdapter <IRdprfxAdapter>();
                this.rdprfxAdapter.Reset();
                //Initial the RDPRFX adapter context.
                rdprfxAdapter.Accept(this.rdpbcgrAdapter.ServerStack, this.rdpbcgrAdapter.SessionContext);
                receiveAndLogClientRfxCapabilites();
                this.rdpedispAdapter.AttachRdpbcgrAdapter(this.rdpbcgrAdapter);
                this.rdpedispAdapter.AttachRdprfxAdapter(this.rdprfxAdapter);
            }
        }
        /// <summary>
        /// Start RDP connection
        /// </summary>
        private void StartRDPConnection()
        {
            #region Trigger client to connect

            //Trigger client to connect.
            this.TestSite.Log.Add(LogEntryKind.Comment, "Triggering SUT to initiate a RDP connection to server.");
            triggerClientRDPConnect(transportProtocol, true);
            #endregion

            #region RDPBCGR Connection

            // Waiting for the transport level connection request.
            this.TestSite.Log.Add(LogEntryKind.Comment, "Expecting the transport layer connection request.");
            this.rdpbcgrAdapter.ExpectTransportConnection(RDPSessionType.Normal);

            //Set Server Capability with RomoteFX codec supported.
            this.TestSite.Log.Add(LogEntryKind.Comment, "Setting Server RDPRFX Capability.");
            setServerCapabilitiesWithRemoteFxSupported();

            // Waiting for the RDP connection sequence.
            this.TestSite.Log.Add(LogEntryKind.Comment, "Establishing RDP connection.");
            this.rdpbcgrAdapter.EstablishRDPConnection(selectedProtocol, enMethod, enLevel, true, false, rdpServerVersion);

            this.TestSite.Log.Add(LogEntryKind.Comment, "Sending Server Save Session Info PDU to SUT to notify user has logged on.");
            this.rdpbcgrAdapter.ServerSaveSessionInfo(LogonNotificationType.UserLoggedOn, ErrorNotificationType_Values.LOGON_FAILED_OTHER);

            #endregion

            rdpedycServer = new RdpedycServer(this.rdpbcgrAdapter.ServerStack, this.rdpbcgrAdapter.SessionContext);
            rdpedycServer.ExchangeCapabilities(waitTime);
            if (notificationType == NotificationType.SurfaceManagementCommand)
            {
                this.rdpegfxAdapter = (IRdpegfxAdapter)this.TestSite.GetAdapter(typeof(IRdpegfxAdapter));
                this.rdpegfxAdapter.Reset();
                this.rdprfxAdapter = null;
                // RDPEGFX capability exchange
                RDPEGFX_CapabilityExchange();
                this.rdpedispAdapter.AttachRdpbcgrAdapter(this.rdpbcgrAdapter);
                this.rdpedispAdapter.AttachRdpegfxAdapter(rdpegfxAdapter);
            }
            else
            {
                this.rdprfxAdapter = (IRdprfxAdapter)this.TestSite.GetAdapter(typeof(IRdprfxAdapter));
                this.rdprfxAdapter.Reset();
                //Initial the RDPRFX adapter context.
                rdprfxAdapter.Accept(this.rdpbcgrAdapter.ServerStack, this.rdpbcgrAdapter.SessionContext);
                receiveAndLogClientRfxCapabilites();
                this.rdpedispAdapter.AttachRdpbcgrAdapter(this.rdpbcgrAdapter);
                this.rdpedispAdapter.AttachRdprfxAdapter(this.rdprfxAdapter);
            }
        }