// Sending Server Announce Request. private void SendServerPDUOverDVC(PacketId_Values packetType, uint?clientId = null) { RdpefsPDU pdu = null; switch (packetType) { case PacketId_Values.PAKID_CORE_SERVER_ANNOUNCE: pdu = CreateServerAnnounceReqest(); break; case PacketId_Values.PAKID_CORE_SERVER_CAPABILITY: pdu = CreateServerCoreCapabilityRequest(); break; case PacketId_Values.PAKID_CORE_CLIENTID_CONFIRM: pdu = CreateServerClientIdConfirm(clientId); break; case PacketId_Values.PAKID_CORE_USER_LOGGEDON: pdu = new DR_CORE_USER_LOGGEDON(); break; } if (pdu != null && rdpefsServer != null) { rdpefsServer.SendRdpefsPdu(pdu); } else { throw new InvalidOperationException("The sending pdu type is null: " + packetType.ToString()); } }
/// <summary> /// Encode a Server User Logged On packet /// </summary> /// <param name="packet"></param> /// <returns></returns> public static byte[] EncodeServerUserLoggedOn(DR_CORE_USER_LOGGEDON packet) { List <byte> buffer = new List <byte>(); EncodeStructure(buffer, (ushort)(packet.Header.Component)); EncodeStructure(buffer, (ushort)(packet.Header.PacketId)); return(buffer.ToArray()); }
/// <summary> /// Create Server User Logged On packet /// </summary> /// <returns>DR_CORE_USER_LOGGEDON</returns> public static DR_CORE_USER_LOGGEDON CreateServerUserLoggedOn() { DR_CORE_USER_LOGGEDON logonPDU = new DR_CORE_USER_LOGGEDON(); logonPDU.Header = new RDPDR_HEADER(); logonPDU.Header.Component = Component_Values.RDPDR_CTYP_CORE; logonPDU.Header.PacketId = PacketId_Values.PAKID_CORE_USER_LOGGEDON; return(logonPDU); }