The server initiates the protocol with this message.
file:///D:/programs/RFSPAC/XML-RDPEFS/_rfc_ms-rdpefs2_2_2_2.xml
 /// <summary>
 /// Create Server Announce Request packet.
 /// </summary>
 /// <returns>Server Announce Request packet</returns>
 public static DR_CORE_SERVER_ANNOUNCE_REQ CreateServerAnnounceRequest()
 {
     DR_CORE_SERVER_ANNOUNCE_REQ servreAnounceRequest = new DR_CORE_SERVER_ANNOUNCE_REQ();
     servreAnounceRequest.Header = new RDPDR_HEADER();
     servreAnounceRequest.Header.Component = Component_Values.RDPDR_CTYP_CORE;
     servreAnounceRequest.Header.PacketId = PacketId_Values.PAKID_CORE_SERVER_ANNOUNCE;
     servreAnounceRequest.VersionMajor = VersionMajor_Values.V1;
     servreAnounceRequest.VersionMinor = VersionMinor_Values.V1;
     servreAnounceRequest.ClientId = 1;
     return servreAnounceRequest;
 }
 /// <summary>
 /// Encode Server Announce Request packet.
 /// </summary>
 /// <param name="packet">Server Announce Request packet</param>
 /// <returns>Encoded byte array.</returns>
 public static byte[] EncodeServerAnnounceRequest(DR_CORE_SERVER_ANNOUNCE_REQ packet)
 {
     List<byte> buffer = new List<byte>();
     EncodeStructure(buffer, (ushort)(packet.Header.Component));
     EncodeStructure(buffer, (ushort)(packet.Header.PacketId));
     EncodeStructure(buffer, (ushort)(packet.VersionMajor));
     EncodeStructure(buffer, (ushort)(packet.VersionMinor));
     EncodeStructure(buffer, (uint)packet.ClientId);
     return buffer.ToArray();
 }