JwaSvcGuid.pas
上传用户:davidchvip
上传日期:2009-07-28
资源大小:1749k
文件大小:31k
源码类别:

Windows编程

开发平台:

Delphi

  1. {******************************************************************************}
  2. {                                                                       }
  3. { Winsock2 Service GUIDs API interface Unit for Object Pascal                  }
  4. {                                                                       }
  5. { Portions created by Microsoft are Copyright (C) 1995-2001 Microsoft          }
  6. { Corporation. All Rights Reserved.                                            }
  7. {                 }
  8. { The original file is: svcguid.h, released June 2000. The original Pascal     }
  9. { code is: SvcGuid.pas, released December 2000. The initial developer of the   }
  10. { Pascal code is Marcel van Brakel (brakelm@chello.nl).                        }
  11. {                                                                              }
  12. { Portions created by Marcel van Brakel are Copyright (C) 1999-2001            }
  13. { Marcel van Brakel. All Rights Reserved.                                      }
  14. {                 }
  15. { Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI)        }
  16. {                }
  17. { You may retrieve the latest version of this file at the Project JEDI home    }
  18. { page, located at http://delphi-jedi.org or my personal homepage located at   }
  19. { http://members.chello.nl/m.vanbrakel2                                        }
  20. {                }
  21. { The contents of this file are used with permission, subject to the Mozilla   }
  22. { Public License Version 1.1 (the "License"); you may not use this file except }
  23. { in compliance with the License. You may obtain a copy of the License at      }
  24. { http://www.mozilla.org/MPL/MPL-1.1.html                                      }
  25. {                                                                              }
  26. { Software distributed under the License is distributed on an "AS IS" basis,   }
  27. { WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for }
  28. { the specific language governing rights and limitations under the License.    }
  29. {                                                                              }
  30. { Alternatively, the contents of this file may be used under the terms of the  }
  31. { GNU Lesser General Public License (the  "LGPL License"), in which case the   }
  32. { provisions of the LGPL License are applicable instead of those above.        }
  33. { If you wish to allow use of your version of this file only under the terms   }
  34. { of the LGPL License and not to allow others to use your version of this file }
  35. { under the MPL, indicate your decision by deleting  the provisions above and  }
  36. { replace  them with the notice and other provisions required by the LGPL      }
  37. { License.  If you do not delete the provisions above, a recipient may use     }
  38. { your version of this file under either the MPL or the LGPL License.          }
  39. {                 }
  40. { For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html }
  41. {                 }
  42. {******************************************************************************}
  43. unit JwaSvcGuid;
  44. {$WEAKPACKAGEUNIT}
  45. {$HPPEMIT ''}
  46. {$HPPEMIT '#include "svguid.h"'}
  47. {$HPPEMIT ''}
  48. {$I WINDEFINES.INC}
  49. interface
  50. uses
  51. {$IFDEF STANDALONE}
  52.   JwaWinTypes;
  53. {$ELSE}
  54.   Windows;
  55. {$ENDIF}
  56. //  Defines GUIDs for well-known services including:
  57. //
  58. //      HOSTNAME
  59. //      RFC 1060 (Assigned Numbers) from IANA (All TCP/IP Services)
  60. //      NetWare services
  61. //
  62. // HOSTNAME--special GUID which refers to the name of a host as opposed
  63. // to any particular service on that host.
  64. //
  65. const
  66.   SVCID_HOSTNAME: TGUID = '{0002a800-0000-0000-C000-000000000046}';
  67.   {$EXTERNALSYM SVCID_HOSTNAME}
  68. //
  69. // GUIDs for dealing with AF_INET address spaces alone. These are
  70. // intended to be used when fetching hostent or servent information
  71. // from such a provider. These are not general-purpose types and
  72. // should be used only when the intent is getting at down-level
  73. // information.
  74. //
  75.   SVCID_INET_HOSTADDRBYINETSTRING: TGUID = '{0002a801-0000-0000-C000-000000000046}';
  76.   {$EXTERNALSYM SVCID_INET_HOSTADDRBYINETSTRING}
  77.   SVCID_INET_SERVICEBYNAME: TGUID = '{0002a802-0000-0000-C000-000000000046}';
  78.   {$EXTERNALSYM SVCID_INET_SERVICEBYNAME}
  79.   SVCID_INET_HOSTADDRBYNAME: TGUID = '{0002a803-0000-0000-C000-000000000046}';
  80.   {$EXTERNALSYM SVCID_INET_HOSTADDRBYNAME}
  81. //
  82. // Macros for defining and testing TCP and UDP GUIDs from a well-known
  83. // port.
  84. //
  85. function SVCID_TCP_RR(Port, RR: Word): TGUID;
  86. {$EXTERNALSYM SVCID_TCP_RR}
  87. function SVCID_TCP(Port: Word): TGUID;
  88. {$EXTERNALSYM SVCID_TCP}
  89. function SVCID_DNS(RecordType: Word): TGUID;
  90. {$EXTERNALSYM SVCID_DNS}
  91. function IS_SVCID_DNS(const Guid: TGUID): Boolean;
  92. {$EXTERNALSYM IS_SVCID_DNS}
  93. function IS_SVCID_TCP(const Guid: TGUID): Boolean;
  94. {$EXTERNALSYM IS_SVCID_TCP}
  95. function PORT_FROM_SVCID_TCP(const Guid: TGUID): Word;
  96. {$EXTERNALSYM PORT_FROM_SVCID_TCP}
  97. function RR_FROM_SVCID(const Guid: TGUID): Word;
  98. {$EXTERNALSYM RR_FROM_SVCID}
  99. procedure SET_TCP_SVCID_RR(var Guid: TGUID; _Port, _RR: Word);
  100. {$EXTERNALSYM SET_TCP_SVCID_RR}
  101. procedure SET_TCP_SVCID(var Guid: TGUID; Port: Word);
  102. {$EXTERNALSYM SET_TCP_SVCID}
  103. function SVCID_UDP_RR(Port, RR: Word): TGUID;
  104. {$EXTERNALSYM SVCID_UDP_RR}
  105. function SVCID_UDP(Port: Word): TGUID;
  106. {$EXTERNALSYM SVCID_UDP}
  107. function IS_SVCID_UDP(const Guid: TGUID): Boolean;
  108. {$EXTERNALSYM IS_SVCID_UDP}
  109. function PORT_FROM_SVCID_UDP(const Guid: TGUID): WORD;
  110. {$EXTERNALSYM PORT_FROM_SVCID_UDP}
  111. procedure SET_UDP_SVCID_RR(var Guid: TGUID; Port, RR: WORD);
  112. {$EXTERNALSYM SET_UDP_SVCID_RR}
  113. procedure SET_UDP_SVCID(var Guid: TGUID; Port: WORD);
  114. {$EXTERNALSYM SET_UDP_SVCID}
  115. //
  116. // Macros for defining and testing Netware (SAP) services based on the
  117. // SAP ID.
  118. //
  119. function SVCID_NETWARE(SapId: WORD): TGUID;
  120. {$EXTERNALSYM SVCID_NETWARE}
  121. function IS_SVCID_NETWARE(const Guid: TGUID): Boolean;
  122. {$EXTERNALSYM IS_SVCID_NETWARE}
  123. function SAPID_FROM_SVCID_NETWARE(const Guid: TGUID): WORD;
  124. {$EXTERNALSYM SAPID_FROM_SVCID_NETWARE}
  125. procedure SET_NETWARE_SVCID(var Guid: TGUID; SapId: WORD);
  126. {$EXTERNALSYM SET_NETWARE_SVCID}
  127. //
  128. // RFC 1060 services as defined by the IANA
  129. // GUID block = 0009xxxx-0000-0000-C0000-000000000046
  130. //
  131. const
  132.   SVCID_ECHO_TCP: TGUID = '{00090007-0000-0000-C000-000000000046}';
  133.   {$EXTERNALSYM SVCID_ECHO_TCP}
  134.   SVCID_DISCARD_TCP: TGUID = '{00090009-0000-0000-C000-000000000046}';
  135.   {$EXTERNALSYM SVCID_DISCARD_TCP}
  136.   SVCID_SYSTAT_TCP: TGUID = '{0009000B-0000-0000-C000-000000000046}';
  137.   {$EXTERNALSYM SVCID_SYSTAT_TCP}
  138.   SVCID_DAYTIME_TCP: TGUID = '{0009000D-0000-0000-C000-000000000046}';
  139.   {$EXTERNALSYM SVCID_DAYTIME_TCP}
  140.   SVCID_NETSTAT_TCP: TGUID = '{0009000F-0000-0000-C000-000000000046}';
  141.   {$EXTERNALSYM SVCID_NETSTAT_TCP}
  142.   SVCID_QOTD_TCP: TGUID = '{00090011-0000-0000-C000-000000000046}';
  143.   {$EXTERNALSYM SVCID_QOTD_TCP}
  144.   SVCID_CHARGEN_TCP: TGUID = '{00090013-0000-0000-C000-000000000046}';
  145.   {$EXTERNALSYM SVCID_CHARGEN_TCP}
  146.   SVCID_FTP_DATA_TCP: TGUID = '{00090014-0000-0000-C000-000000000046}';
  147.   {$EXTERNALSYM SVCID_FTP_DATA_TCP}
  148.   SVCID_FTP_TCP: TGUID = '{00090015-0000-0000-C000-000000000046}';
  149.   {$EXTERNALSYM SVCID_FTP_TCP}
  150.   SVCID_TELNET_TCP: TGUID = '{00090017-0000-0000-C000-000000000046}';
  151.   {$EXTERNALSYM SVCID_TELNET_TCP}
  152.   SVCID_SMTP_TCP: TGUID = '{00090019-0000-0000-C000-000000000046}';
  153.   {$EXTERNALSYM SVCID_SMTP_TCP}
  154.   SVCID_TIME_TCP: TGUID = '{00090025-0000-0000-C000-000000000046}';
  155.   {$EXTERNALSYM SVCID_TIME_TCP}
  156.   SVCID_NAME_TCP: TGUID = '{0009002A-0000-0000-C000-000000000046}';
  157.   {$EXTERNALSYM SVCID_NAME_TCP}
  158.   SVCID_WHOIS_TCP: TGUID = '{0009002B-0000-0000-C000-000000000046}';
  159.   {$EXTERNALSYM SVCID_WHOIS_TCP}
  160.   SVCID_DOMAIN_TCP: TGUID = '{00090035-0000-0000-C000-000000000046}';
  161.   {$EXTERNALSYM SVCID_DOMAIN_TCP}
  162.   SVCID_NAMESERVER_TCP: TGUID = '{00090035-0000-0000-C000-000000000046}';
  163.   {$EXTERNALSYM SVCID_NAMESERVER_TCP}
  164.   SVCID_MTP_TCP: TGUID = '{00090039-0000-0000-C000-000000000046}';
  165.   {$EXTERNALSYM SVCID_MTP_TCP}
  166.   SVCID_RJE_TCP: TGUID = '{0009004D-0000-0000-C000-000000000046}';
  167.   {$EXTERNALSYM SVCID_RJE_TCP}
  168.   SVCID_FINGER_TCP: TGUID = '{0009004F-0000-0000-C000-000000000046}';
  169.   {$EXTERNALSYM SVCID_FINGER_TCP}
  170.   SVCID_LINK_TCP: TGUID = '{00090057-0000-0000-C000-000000000046}';
  171.   {$EXTERNALSYM SVCID_LINK_TCP}
  172.   SVCID_SUPDUP_TCP: TGUID = '{0009005F-0000-0000-C000-000000000046}';
  173.   {$EXTERNALSYM SVCID_SUPDUP_TCP}
  174.   SVCID_HOSTNAMES_TCP: TGUID = '{00090065-0000-0000-C000-000000000046}';
  175.   {$EXTERNALSYM SVCID_HOSTNAMES_TCP}
  176.   SVCID_ISO_TSAP_TCP: TGUID = '{00090066-0000-0000-C000-000000000046}';
  177.   {$EXTERNALSYM SVCID_ISO_TSAP_TCP}
  178.   SVCID_DICTIONARY_TCP: TGUID = '{00090067-0000-0000-C000-000000000046}';
  179.   {$EXTERNALSYM SVCID_DICTIONARY_TCP}
  180.   SVCID_X400_TCP: TGUID = '{00090067-0000-0000-C000-000000000046}';
  181.   {$EXTERNALSYM SVCID_X400_TCP}
  182.   SVCID_X400_SND_TCP: TGUID = '{00090068-0000-0000-C000-000000000046}';
  183.   {$EXTERNALSYM SVCID_X400_SND_TCP}
  184.   SVCID_CSNET_NS_TCP: TGUID = '{00090069-0000-0000-C000-000000000046}';
  185.   {$EXTERNALSYM SVCID_CSNET_NS_TCP}
  186.   SVCID_POP_TCP: TGUID = '{0009006D-0000-0000-C000-000000000046}';
  187.   {$EXTERNALSYM SVCID_POP_TCP}
  188.   SVCID_POP2_TCP: TGUID = '{0009006D-0000-0000-C000-000000000046}';
  189.   {$EXTERNALSYM SVCID_POP2_TCP}
  190.   SVCID_POP3_TCP: TGUID = '{0009006E-0000-0000-C000-000000000046}';
  191.   {$EXTERNALSYM SVCID_POP3_TCP}
  192.   SVCID_PORTMAP_TCP: TGUID = '{0009006F-0000-0000-C000-000000000046}';
  193.   {$EXTERNALSYM SVCID_PORTMAP_TCP}
  194.   SVCID_SUNRPC_TCP: TGUID = '{0009006F-0000-0000-C000-000000000046}';
  195.   {$EXTERNALSYM SVCID_SUNRPC_TCP}
  196.   SVCID_AUTH_TCP: TGUID = '{00090071-0000-0000-C000-000000000046}';
  197.   {$EXTERNALSYM SVCID_AUTH_TCP}
  198.   SVCID_SFTP_TCP: TGUID = '{00090073-0000-0000-C000-000000000046}';
  199.   {$EXTERNALSYM SVCID_SFTP_TCP}
  200.   SVCID_PATH_TCP: TGUID = '{00090075-0000-0000-C000-000000000046}';
  201.   {$EXTERNALSYM SVCID_PATH_TCP}
  202.   SVCID_UUCP_PATH_TCP: TGUID = '{00090075-0000-0000-C000-000000000046}';
  203.   {$EXTERNALSYM SVCID_UUCP_PATH_TCP}
  204.   SVCID_NNTP_TCP: TGUID = '{00090077-0000-0000-C000-000000000046}';
  205.   {$EXTERNALSYM SVCID_NNTP_TCP}
  206.   SVCID_NBSESSION_TCP: TGUID = '{0009008B-0000-0000-C000-000000000046}';
  207.   {$EXTERNALSYM SVCID_NBSESSION_TCP}
  208.   SVCID_NEWS_TCP: TGUID = '{00090090-0000-0000-C000-000000000046}';
  209.   {$EXTERNALSYM SVCID_NEWS_TCP}
  210.   SVCID_TCPREPO_TCP: TGUID = '{0009009E-0000-0000-C000-000000000046}';
  211.   {$EXTERNALSYM SVCID_TCPREPO_TCP}
  212.   SVCID_PRINT_SRV_TCP: TGUID = '{000900AA-0000-0000-C000-000000000046}';
  213.   {$EXTERNALSYM SVCID_PRINT_SRV_TCP}
  214.   SVCID_VMNET_TCP: TGUID = '{000900AF-0000-0000-C000-000000000046}';
  215.   {$EXTERNALSYM SVCID_VMNET_TCP}
  216.   SVCID_VMNET0_TCP: TGUID = '{00090190-0000-0000-C000-000000000046}';
  217.   {$EXTERNALSYM SVCID_VMNET0_TCP}
  218.   SVCID_EXEC_TCP: TGUID = '{00090200-0000-0000-C000-000000000046}';
  219.   {$EXTERNALSYM SVCID_EXEC_TCP}
  220.   SVCID_LOGIN_TCP: TGUID = '{00090201-0000-0000-C000-000000000046}';
  221.   {$EXTERNALSYM SVCID_LOGIN_TCP}
  222.   SVCID_SHELL_TCP: TGUID = '{00090202-0000-0000-C000-000000000046}';
  223.   {$EXTERNALSYM SVCID_SHELL_TCP}
  224.   SVCID_PRINTER_TCP: TGUID = '{00090203-0000-0000-C000-000000000046}';
  225.   {$EXTERNALSYM SVCID_PRINTER_TCP}
  226.   SVCID_EFS_TCP: TGUID = '{00090208-0000-0000-C000-000000000046}';
  227.   {$EXTERNALSYM SVCID_EFS_TCP}
  228.   SVCID_TEMPO_TCP: TGUID = '{0009020E-0000-0000-C000-000000000046}';
  229.   {$EXTERNALSYM SVCID_TEMPO_TCP}
  230.   SVCID_COURIER_TCP: TGUID = '{00090212-0000-0000-C000-000000000046}';
  231.   {$EXTERNALSYM SVCID_COURIER_TCP}
  232.   SVCID_CONFERENCE_TCP: TGUID = '{00090213-0000-0000-C000-000000000046}';
  233.   {$EXTERNALSYM SVCID_CONFERENCE_TCP}
  234.   SVCID_NETNEWS_TCP: TGUID = '{00090214-0000-0000-C000-000000000046}';
  235.   {$EXTERNALSYM SVCID_NETNEWS_TCP}
  236.   SVCID_UUCP_TCP: TGUID = '{0009021C-0000-0000-C000-000000000046}';
  237.   {$EXTERNALSYM SVCID_UUCP_TCP}
  238.   SVCID_KLOGIN_TCP: TGUID = '{0009021F-0000-0000-C000-000000000046}';
  239.   {$EXTERNALSYM SVCID_KLOGIN_TCP}
  240.   SVCID_KSHELL_TCP: TGUID = '{00090220-0000-0000-C000-000000000046}';
  241.   {$EXTERNALSYM SVCID_KSHELL_TCP}
  242.   SVCID_REMOTEFS_TCP: TGUID = '{0009022C-0000-0000-C000-000000000046}';
  243.   {$EXTERNALSYM SVCID_REMOTEFS_TCP}
  244.   SVCID_GARCON_TCP: TGUID = '{00090258-0000-0000-C000-000000000046}';
  245.   {$EXTERNALSYM SVCID_GARCON_TCP}
  246.   SVCID_MAITRD_TCP: TGUID = '{00090259-0000-0000-C000-000000000046}';
  247.   {$EXTERNALSYM SVCID_MAITRD_TCP}
  248.   SVCID_BUSBOY_TCP: TGUID = '{0009025A-0000-0000-C000-000000000046}';
  249.   {$EXTERNALSYM SVCID_BUSBOY_TCP}
  250.   SVCID_KERBEROS_TCP: TGUID = '{000902EE-0000-0000-C000-000000000046}';
  251.   {$EXTERNALSYM SVCID_KERBEROS_TCP}
  252.   SVCID_KERBEROS_MASTER_TCP: TGUID = '{000902EF-0000-0000-C000-000000000046}';
  253.   {$EXTERNALSYM SVCID_KERBEROS_MASTER_TCP}
  254.   SVCID_KRB_PROP_TCP: TGUID = '{000902F2-0000-0000-C000-000000000046}';
  255.   {$EXTERNALSYM SVCID_KRB_PROP_TCP}
  256.   SVCID_ERLOGIN_TCP: TGUID = '{00090378-0000-0000-C000-000000000046}';
  257.   {$EXTERNALSYM SVCID_ERLOGIN_TCP}
  258.   SVCID_KPOP_TCP: TGUID = '{00090455-0000-0000-C000-000000000046}';
  259.   {$EXTERNALSYM SVCID_KPOP_TCP}
  260.   SVCID_INGRESLOCK_TCP: TGUID = '{000905F4-0000-0000-C000-000000000046}';
  261.   {$EXTERNALSYM SVCID_INGRESLOCK_TCP}
  262.   SVCID_KNETD_TCP: TGUID = '{00090805-0000-0000-C000-000000000046}';
  263.   {$EXTERNALSYM SVCID_KNETD_TCP}
  264.   SVCID_EKLOGIN_TCP: TGUID = '{00090839-0000-0000-C000-000000000046}';
  265.   {$EXTERNALSYM SVCID_EKLOGIN_TCP}
  266.   SVCID_RMT_TCP: TGUID = '{000915B3-0000-0000-C000-000000000046}';
  267.   {$EXTERNALSYM SVCID_RMT_TCP}
  268.   SVCID_MTB_TCP: TGUID = '{000915B4-0000-0000-C000-000000000046}';
  269.   {$EXTERNALSYM SVCID_MTB_TCP}
  270.   SVCID_MAN_TCP: TGUID = '{0009253F-0000-0000-C000-000000000046}';
  271.   {$EXTERNALSYM SVCID_MAN_TCP}
  272.   SVCID_W_TCP: TGUID = '{00092540-0000-0000-C000-000000000046}';
  273.   {$EXTERNALSYM SVCID_W_TCP}
  274.   SVCID_MANTST_TCP: TGUID = '{00092541-0000-0000-C000-000000000046}';
  275.   {$EXTERNALSYM SVCID_MANTST_TCP}
  276.   SVCID_BNEWS_TCP: TGUID = '{00092710-0000-0000-C000-000000000046}';
  277.   {$EXTERNALSYM SVCID_BNEWS_TCP}
  278.   SVCID_QUEUE_TCP: TGUID = '{00092711-0000-0000-C000-000000000046}';
  279.   {$EXTERNALSYM SVCID_QUEUE_TCP}
  280.   SVCID_POKER_TCP: TGUID = '{00092712-0000-0000-C000-000000000046}';
  281.   {$EXTERNALSYM SVCID_POKER_TCP}
  282.   SVCID_GATEWAY_TCP: TGUID = '{00092713-0000-0000-C000-000000000046}';
  283.   {$EXTERNALSYM SVCID_GATEWAY_TCP}
  284.   SVCID_REMP_TCP: TGUID = '{00092714-0000-0000-C000-000000000046}';
  285.   {$EXTERNALSYM SVCID_REMP_TCP}
  286.   SVCID_QMASTER_TCP: TGUID = '{0009271C-0000-0000-C000-000000000046}';
  287.   {$EXTERNALSYM SVCID_QMASTER_TCP}
  288.   SVCID_ECHO_UDP: TGUID = '{000A0007-0000-0000-C000-000000000046}';
  289.   {$EXTERNALSYM SVCID_ECHO_UDP}
  290.   SVCID_DISCARD_UDP: TGUID = '{000A0009-0000-0000-C000-000000000046}';
  291.   {$EXTERNALSYM SVCID_DISCARD_UDP}
  292.   SVCID_DAYTIME_UDP: TGUID = '{000A000D-0000-0000-C000-000000000046}';
  293.   {$EXTERNALSYM SVCID_DAYTIME_UDP}
  294.   SVCID_QOTD_UDP: TGUID = '{000A0011-0000-0000-C000-000000000046}';
  295.   {$EXTERNALSYM SVCID_QOTD_UDP}
  296.   SVCID_CHARGEN_UDP: TGUID = '{000A0013-0000-0000-C000-000000000046}';
  297.   {$EXTERNALSYM SVCID_CHARGEN_UDP}
  298.   SVCID_TIME_UDP: TGUID = '{000A0025-0000-0000-C000-000000000046}';
  299.   {$EXTERNALSYM SVCID_TIME_UDP}
  300.   SVCID_RLP_UDP: TGUID = '{000A0027-0000-0000-C000-000000000046}';
  301.   {$EXTERNALSYM SVCID_RLP_UDP}
  302.   SVCID_NAME_UDP: TGUID = '{000A002A-0000-0000-C000-000000000046}';
  303.   {$EXTERNALSYM SVCID_NAME_UDP}
  304.   SVCID_DOMAIN_UDP: TGUID = '{000A0035-0000-0000-C000-000000000046}';
  305.   {$EXTERNALSYM SVCID_DOMAIN_UDP}
  306.   SVCID_NAMESERVER_UDP: TGUID = '{000A0035-0000-0000-C000-000000000046}';
  307.   {$EXTERNALSYM SVCID_NAMESERVER_UDP}
  308.   SVCID_BOOTP_UDP: TGUID = '{000A0043-0000-0000-C000-000000000046}';
  309.   {$EXTERNALSYM SVCID_BOOTP_UDP}
  310.   SVCID_TFTP_UDP: TGUID = '{000A0045-0000-0000-C000-000000000046}';
  311.   {$EXTERNALSYM SVCID_TFTP_UDP}
  312.   SVCID_PORTMAP_UDP: TGUID = '{000A006F-0000-0000-C000-000000000046}';
  313.   {$EXTERNALSYM SVCID_PORTMAP_UDP}
  314.   SVCID_SUNRPC_UDP: TGUID = '{000A006F-0000-0000-C000-000000000046}';
  315.   {$EXTERNALSYM SVCID_SUNRPC_UDP}
  316.   SVCID_NTP_UDP: TGUID = '{000A007B-0000-0000-C000-000000000046}';
  317.   {$EXTERNALSYM SVCID_NTP_UDP}
  318.   SVCID_NBNAME_UDP: TGUID = '{000A0089-0000-0000-C000-000000000046}';
  319.   {$EXTERNALSYM SVCID_NBNAME_UDP}
  320.   SVCID_NBDATAGRAM_UDP: TGUID = '{000A008A-0000-0000-C000-000000000046}';
  321.   {$EXTERNALSYM SVCID_NBDATAGRAM_UDP}
  322.   SVCID_SGMP_UDP: TGUID = '{000A0099-0000-0000-C000-000000000046}';
  323.   {$EXTERNALSYM SVCID_SGMP_UDP}
  324.   SVCID_SNMP_UDP: TGUID = '{000A00A1-0000-0000-C000-000000000046}';
  325.   {$EXTERNALSYM SVCID_SNMP_UDP}
  326.   SVCID_SNMP_TRAP_UDP: TGUID = '{000A00A2-0000-0000-C000-000000000046}';
  327.   {$EXTERNALSYM SVCID_SNMP_TRAP_UDP}
  328.   SVCID_LOAD_UDP: TGUID = '{000A013B-0000-0000-C000-000000000046}';
  329.   {$EXTERNALSYM SVCID_LOAD_UDP}
  330.   SVCID_SYTEK_UDP: TGUID = '{000A01F4-0000-0000-C000-000000000046}';
  331.   {$EXTERNALSYM SVCID_SYTEK_UDP}
  332.   SVCID_BIFF_UDP: TGUID = '{000A0200-0000-0000-C000-000000000046}';
  333.   {$EXTERNALSYM SVCID_BIFF_UDP}
  334.   SVCID_WHO_UDP: TGUID = '{000A0201-0000-0000-C000-000000000046}';
  335.   {$EXTERNALSYM SVCID_WHO_UDP}
  336.   SVCID_SYSLOG_UDP: TGUID = '{000A0202-0000-0000-C000-000000000046}';
  337.   {$EXTERNALSYM SVCID_SYSLOG_UDP}
  338.   SVCID_TALK_UDP: TGUID = '{000A0205-0000-0000-C000-000000000046}';
  339.   {$EXTERNALSYM SVCID_TALK_UDP}
  340.   SVCID_NTALK_UDP: TGUID = '{000A0206-0000-0000-C000-000000000046}';
  341.   {$EXTERNALSYM SVCID_NTALK_UDP}
  342.   SVCID_ROUTE_UDP: TGUID = '{000A0208-0000-0000-C000-000000000046}';
  343.   {$EXTERNALSYM SVCID_ROUTE_UDP}
  344.   SVCID_TIMED_UDP: TGUID = '{000A020D-0000-0000-C000-000000000046}';
  345.   {$EXTERNALSYM SVCID_TIMED_UDP}
  346.   SVCID_RVD_CONTROL_UDP: TGUID = '{000A0213-0000-0000-C000-000000000046}';
  347.   {$EXTERNALSYM SVCID_RVD_CONTROL_UDP}
  348.   SVCID_NETWALL_UDP: TGUID = '{000A0215-0000-0000-C000-000000000046}';
  349.   {$EXTERNALSYM SVCID_NETWALL_UDP}
  350.   SVCID_NEW_RWHO_UDP: TGUID = '{000A0226-0000-0000-C000-000000000046}';
  351.   {$EXTERNALSYM SVCID_NEW_RWHO_UDP}
  352.   SVCID_RMONITOR_UDP: TGUID = '{000A0230-0000-0000-C000-000000000046}';
  353.   {$EXTERNALSYM SVCID_RMONITOR_UDP}
  354.   SVCID_MONITOR_UDP: TGUID = '{000A0231-0000-0000-C000-000000000046}';
  355.   {$EXTERNALSYM SVCID_MONITOR_UDP}
  356.   SVCID_ACCTMASTER_UDP: TGUID = '{000A02BC-0000-0000-C000-000000000046}';
  357.   {$EXTERNALSYM SVCID_ACCTMASTER_UDP}
  358.   SVCID_ACCTSLAVE_UDP: TGUID = '{000A02BD-0000-0000-C000-000000000046}';
  359.   {$EXTERNALSYM SVCID_ACCTSLAVE_UDP}
  360.   SVCID_ACCT_UDP: TGUID = '{000A02BE-0000-0000-C000-000000000046}';
  361.   {$EXTERNALSYM SVCID_ACCT_UDP}
  362.   SVCID_ACCTLOGIN_UDP: TGUID = '{000A02BF-0000-0000-C000-000000000046}';
  363.   {$EXTERNALSYM SVCID_ACCTLOGIN_UDP}
  364.   SVCID_ACCTPRINTER_UDP: TGUID = '{000A02C0-0000-0000-C000-000000000046}';
  365.   {$EXTERNALSYM SVCID_ACCTPRINTER_UDP}
  366.   SVCID_ELCSD_UDP: TGUID = '{000A02C0-0000-0000-C000-000000000046}';
  367.   {$EXTERNALSYM SVCID_ELCSD_UDP}
  368.   SVCID_ACCTINFO_UDP: TGUID = '{000A02C1-0000-0000-C000-000000000046}';
  369.   {$EXTERNALSYM SVCID_ACCTINFO_UDP}
  370.   SVCID_ACCTSLAVE2_UDP: TGUID = '{000A02C2-0000-0000-C000-000000000046}';
  371.   {$EXTERNALSYM SVCID_ACCTSLAVE2_UDP}
  372.   SVCID_ACCTDISK_UDP: TGUID = '{000A02C3-0000-0000-C000-000000000046}';
  373.   {$EXTERNALSYM SVCID_ACCTDISK_UDP}
  374.   SVCID_KERBEROS_UDP: TGUID = '{000A02EE-0000-0000-C000-000000000046}';
  375.   {$EXTERNALSYM SVCID_KERBEROS_UDP}
  376.   SVCID_KERBEROS_MASTER_UDP: TGUID = '{000A02EF-0000-0000-C000-000000000046}';
  377.   {$EXTERNALSYM SVCID_KERBEROS_MASTER_UDP}
  378.   SVCID_PASSWD_SERVER_UDP: TGUID = '{000A02F0-0000-0000-C000-000000000046}';
  379.   {$EXTERNALSYM SVCID_PASSWD_SERVER_UDP}
  380.   SVCID_USERREG_SERVER_UDP: TGUID = '{000A02F1-0000-0000-C000-000000000046}';
  381.   {$EXTERNALSYM SVCID_USERREG_SERVER_UDP}
  382.   SVCID_PHONE_UDP: TGUID = '{000A048F-0000-0000-C000-000000000046}';
  383.   {$EXTERNALSYM SVCID_PHONE_UDP}
  384.   SVCID_MAZE_UDP: TGUID = '{000A0682-0000-0000-C000-000000000046}';
  385.   {$EXTERNALSYM SVCID_MAZE_UDP}
  386.   SVCID_NFS_UDP: TGUID = '{000A0801-0000-0000-C000-000000000046}';
  387.   {$EXTERNALSYM SVCID_NFS_UDP}
  388.   SVCID_RSCS0_UDP: TGUID = '{000A2710-0000-0000-C000-000000000046}';
  389.   {$EXTERNALSYM SVCID_RSCS0_UDP}
  390.   SVCID_RSCS1_UDP: TGUID = '{000A2711-0000-0000-C000-000000000046}';
  391.   {$EXTERNALSYM SVCID_RSCS1_UDP}
  392.   SVCID_RSCS2_UDP: TGUID = '{000A2712-0000-0000-C000-000000000046}';
  393.   {$EXTERNALSYM SVCID_RSCS2_UDP}
  394.   SVCID_RSCS3_UDP: TGUID = '{000A2713-0000-0000-C000-000000000046}';
  395.   {$EXTERNALSYM SVCID_RSCS3_UDP}
  396.   SVCID_RSCS4_UDP: TGUID = '{000A2714-0000-0000-C000-000000000046}';
  397.   {$EXTERNALSYM SVCID_RSCS4_UDP}
  398.   SVCID_RSCS5_UDP: TGUID = '{000A2715-0000-0000-C000-000000000046}';
  399.   {$EXTERNALSYM SVCID_RSCS5_UDP}
  400.   SVCID_RSCS6_UDP: TGUID = '{000A2716-0000-0000-C000-000000000046}';
  401.   {$EXTERNALSYM SVCID_RSCS6_UDP}
  402.   SVCID_RSCS7_UDP: TGUID = '{000A2717-0000-0000-C000-000000000046}';
  403.   {$EXTERNALSYM SVCID_RSCS7_UDP}
  404.   SVCID_RSCS8_UDP: TGUID = '{000A2718-0000-0000-C000-000000000046}';
  405.   {$EXTERNALSYM SVCID_RSCS8_UDP}
  406.   SVCID_RSCS9_UDP: TGUID = '{000A2719-0000-0000-C000-000000000046}';
  407.   {$EXTERNALSYM SVCID_RSCS9_UDP}
  408.   SVCID_RSCSA_UDP: TGUID = '{000A271A-0000-0000-C000-000000000046}';
  409.   {$EXTERNALSYM SVCID_RSCSA_UDP}
  410.   SVCID_RSCSB_UDP: TGUID = '{000A271B-0000-0000-C000-000000000046}';
  411.   {$EXTERNALSYM SVCID_RSCSB_UDP}
  412.   SVCID_QMASTER_UDP: TGUID = '{000A271C-0000-0000-C000-000000000046}';
  413.   {$EXTERNALSYM SVCID_QMASTER_UDP}
  414. //
  415. // NetWare services
  416. // GUID block = 000axxxx-0000-0000-C0000-000000000046
  417. //
  418.   SVCID_PRINT_QUEUE: TGUID = '{000B0003-0000-0000-C000-000000000046}';
  419.   {$EXTERNALSYM SVCID_PRINT_QUEUE}
  420.   SVCID_FILE_SERVER: TGUID = '{000B0004-0000-0000-C000-000000000046}';
  421.   {$EXTERNALSYM SVCID_FILE_SERVER}
  422.   SVCID_JOB_SERVER: TGUID = '{000B0005-0000-0000-C000-000000000046}';
  423.   {$EXTERNALSYM SVCID_JOB_SERVER}
  424.   SVCID_GATEWAY: TGUID = '{000B0006-0000-0000-C000-000000000046}';
  425.   {$EXTERNALSYM SVCID_GATEWAY}
  426.   SVCID_PRINT_SERVER: TGUID = '{000B0007-0000-0000-C000-000000000046}';
  427.   {$EXTERNALSYM SVCID_PRINT_SERVER}
  428.   SVCID_ARCHIVE_QUEUE: TGUID = '{000B0008-0000-0000-C000-000000000046}';
  429.   {$EXTERNALSYM SVCID_ARCHIVE_QUEUE}
  430.   SVCID_ARCHIVE_SERVER: TGUID = '{000B0009-0000-0000-C000-000000000046}';
  431.   {$EXTERNALSYM SVCID_ARCHIVE_SERVER}
  432.   SVCID_JOB_QUEUE: TGUID = '{000B000A-0000-0000-C000-000000000046}';
  433.   {$EXTERNALSYM SVCID_JOB_QUEUE}
  434.   SVCID_ADMINISTRATION: TGUID = '{000B000B-0000-0000-C000-000000000046}';
  435.   {$EXTERNALSYM SVCID_ADMINISTRATION}
  436.   SVCID_NAS_SNA_GATEWAY: TGUID = '{000B0021-0000-0000-C000-000000000046}';
  437.   {$EXTERNALSYM SVCID_NAS_SNA_GATEWAY}
  438.   SVCID_REMOTE_BRIDGE_SERVER: TGUID = '{000B0024-0000-0000-C000-000000000046}';
  439.   {$EXTERNALSYM SVCID_REMOTE_BRIDGE_SERVER}
  440.   SVCID_TIME_SYNCHRONIZATION_SERVER: TGUID = '{000B002D-0000-0000-C000-000000000046}';
  441.   {$EXTERNALSYM SVCID_TIME_SYNCHRONIZATION_SERVER}
  442.   SVCID_ARCHIVE_SERVER_DYNAMIC_SAP: TGUID = '{000B002E-0000-0000-C000-000000000046}';
  443.   {$EXTERNALSYM SVCID_ARCHIVE_SERVER_DYNAMIC_SAP}
  444.   SVCID_ADVERTISING_PRINT_SERVER: TGUID = '{000B0047-0000-0000-C000-000000000046}';
  445.   {$EXTERNALSYM SVCID_ADVERTISING_PRINT_SERVER}
  446.   SVCID_BTRIEVE_VAP: TGUID = '{000B004B-0000-0000-C000-000000000046}';
  447.   {$EXTERNALSYM SVCID_BTRIEVE_VAP}
  448.   SVCID_DIRECTORY_SERVER: TGUID = '{000B0278-0000-0000-C000-000000000046}';
  449.   {$EXTERNALSYM SVCID_DIRECTORY_SERVER}
  450.   SVCID_NETWARE_386: TGUID = '{000B0107-0000-0000-C000-000000000046}';
  451.   {$EXTERNALSYM SVCID_NETWARE_386}
  452.   SVCID_HP_PRINT_SERVER: TGUID = '{000B030C-0000-0000-C000-000000000046}';
  453.   {$EXTERNALSYM SVCID_HP_PRINT_SERVER}
  454.   SVCID_SNA_SERVER: TGUID = '{000B0444-0000-0000-C000-000000000046}';
  455.   {$EXTERNALSYM SVCID_SNA_SERVER}
  456.   SVCID_SAA_SERVER: TGUID = '{000B0130-0000-0000-C000-000000000046}';
  457.   {$EXTERNALSYM SVCID_SAA_SERVER}
  458. //
  459. // DNS services by record type
  460. // GUID block = 00090035-0000-xxxx-C0000-000000000046
  461. //
  462.   SVCID_DNS_TYPE_A: TGUID = '{00090035-0000-0001-C000-000000000046}';
  463.   {$EXTERNALSYM SVCID_DNS_TYPE_A}
  464.   SVCID_DNS_TYPE_NS: TGUID = '{00090035-0000-0002-C000-000000000046}';
  465.   {$EXTERNALSYM SVCID_DNS_TYPE_NS}
  466.   SVCID_DNS_TYPE_MD: TGUID = '{00090035-0000-0003-C000-000000000046}';
  467.   {$EXTERNALSYM SVCID_DNS_TYPE_MD}
  468.   SVCID_DNS_TYPE_MF: TGUID = '{00090035-0000-0004-C000-000000000046}';
  469.   {$EXTERNALSYM SVCID_DNS_TYPE_MF}
  470.   SVCID_DNS_TYPE_CNAME: TGUID = '{00090035-0000-0005-C000-000000000046}';
  471.   {$EXTERNALSYM SVCID_DNS_TYPE_CNAME}
  472.   SVCID_DNS_TYPE_SOA: TGUID = '{00090035-0000-0006-C000-000000000046}';
  473.   {$EXTERNALSYM SVCID_DNS_TYPE_SOA}
  474.   SVCID_DNS_TYPE_MB: TGUID = '{00090035-0000-0007-C000-000000000046}';
  475.   {$EXTERNALSYM SVCID_DNS_TYPE_MB}
  476.   SVCID_DNS_TYPE_MG: TGUID = '{00090035-0000-0008-C000-000000000046}';
  477.   {$EXTERNALSYM SVCID_DNS_TYPE_MG}
  478.   SVCID_DNS_TYPE_MR: TGUID = '{00090035-0000-0009-C000-000000000046}';
  479.   {$EXTERNALSYM SVCID_DNS_TYPE_MR}
  480.   SVCID_DNS_TYPE_NULL: TGUID = '{00090035-0000-000A-C000-000000000046}';
  481.   {$EXTERNALSYM SVCID_DNS_TYPE_NULL}
  482.   SVCID_DNS_TYPE_WKS: TGUID = '{00090035-0000-000B-C000-000000000046}';
  483.   {$EXTERNALSYM SVCID_DNS_TYPE_WKS}
  484.   SVCID_DNS_TYPE_PTR: TGUID = '{00090035-0000-000C-C000-000000000046}';
  485.   {$EXTERNALSYM SVCID_DNS_TYPE_PTR}
  486.   SVCID_DNS_TYPE_HINFO: TGUID = '{00090035-0000-000D-C000-000000000046}';
  487.   {$EXTERNALSYM SVCID_DNS_TYPE_HINFO}
  488.   SVCID_DNS_TYPE_MINFO: TGUID = '{00090035-0000-000E-C000-000000000046}';
  489.   {$EXTERNALSYM SVCID_DNS_TYPE_MINFO}
  490.   SVCID_DNS_TYPE_MX: TGUID = '{00090035-0000-000F-C000-000000000046}';
  491.   {$EXTERNALSYM SVCID_DNS_TYPE_MX}
  492.   SVCID_DNS_TYPE_TEXT: TGUID = '{00090035-0000-0010-C000-000000000046}';
  493.   {$EXTERNALSYM SVCID_DNS_TYPE_TEXT}
  494.   SVCID_DNS_TYPE_RP: TGUID = '{00090035-0000-0011-C000-000000000046}';
  495.   {$EXTERNALSYM SVCID_DNS_TYPE_RP}
  496.   SVCID_DNS_TYPE_AFSDB: TGUID = '{00090035-0000-0012-C000-000000000046}';
  497.   {$EXTERNALSYM SVCID_DNS_TYPE_AFSDB}
  498.   SVCID_DNS_TYPE_X25: TGUID = '{00090035-0000-0013-C000-000000000046}';
  499.   {$EXTERNALSYM SVCID_DNS_TYPE_X25}
  500.   SVCID_DNS_TYPE_ISDN: TGUID = '{00090035-0000-0014-C000-000000000046}';
  501.   {$EXTERNALSYM SVCID_DNS_TYPE_ISDN}
  502.   SVCID_DNS_TYPE_RT: TGUID = '{00090035-0000-0015-C000-000000000046}';
  503.   {$EXTERNALSYM SVCID_DNS_TYPE_RT}
  504.   SVCID_DNS_TYPE_NSAP: TGUID = '{00090035-0000-0016-C000-000000000046}';
  505.   {$EXTERNALSYM SVCID_DNS_TYPE_NSAP}
  506.   SVCID_DNS_TYPE_NSAPPTR: TGUID = '{00090035-0000-0017-C000-000000000046}';
  507.   {$EXTERNALSYM SVCID_DNS_TYPE_NSAPPTR}
  508.   SVCID_DNS_TYPE_SIG: TGUID = '{00090035-0000-0018-C000-000000000046}';
  509.   {$EXTERNALSYM SVCID_DNS_TYPE_SIG}
  510.   SVCID_DNS_TYPE_KEY: TGUID = '{00090035-0000-0019-C000-000000000046}';
  511.   {$EXTERNALSYM SVCID_DNS_TYPE_KEY}
  512.   SVCID_DNS_TYPE_PX: TGUID = '{00090035-0000-001A-C000-000000000046}';
  513.   {$EXTERNALSYM SVCID_DNS_TYPE_PX}
  514.   SVCID_DNS_TYPE_GPOS: TGUID = '{00090035-0000-001B-C000-000000000046}';
  515.   {$EXTERNALSYM SVCID_DNS_TYPE_GPOS}
  516.   SVCID_DNS_TYPE_AAAA: TGUID = '{00090035-0000-001C-C000-000000000046}';
  517.   {$EXTERNALSYM SVCID_DNS_TYPE_AAAA}
  518.   SVCID_DNS_TYPE_LOC: TGUID = '{00090035-0000-001D-C000-000000000046}';
  519.   {$EXTERNALSYM SVCID_DNS_TYPE_LOC}
  520.   SVCID_DNS_TYPE_NXT: TGUID = '{00090035-0000-001E-C000-000000000046}';
  521.   {$EXTERNALSYM SVCID_DNS_TYPE_NXT}
  522.   SVCID_DNS_TYPE_SRV: TGUID = '{00090035-0000-0021-C000-000000000046}';
  523.   {$EXTERNALSYM SVCID_DNS_TYPE_SRV}
  524.   SVCID_DNS_TYPE_ATMA: TGUID = '{00090035-0000-0022-C000-000000000046}';
  525.   {$EXTERNALSYM SVCID_DNS_TYPE_ATMA}
  526. implementation
  527. function SVCID_TCP_RR(Port, RR: Word): TGUID;
  528. begin
  529.   Result.D1 := ($0009 shl 16) or Port;
  530.   Result.D2 := $0;
  531.   Result.D3 := RR;
  532.   Result.D4[0] := $C0;
  533.   Result.D4[1] := $00;
  534.   Result.D4[2] := $00;
  535.   Result.D4[3] := $00;
  536.   Result.D4[4] := $00;
  537.   Result.D4[5] := $00;
  538.   Result.D4[6] := $00;
  539.   Result.D4[7] := $46;
  540. end;
  541. function SVCID_TCP(Port: Word): TGUID;
  542. begin
  543.   Result := SVCID_TCP_RR(Port, 0)
  544. end;
  545. function SVCID_DNS(RecordType: Word): TGUID;
  546. begin
  547.   Result := SVCID_TCP_RR(53, RecordType);
  548. end;
  549. function IS_SVCID_DNS(const Guid: TGUID): Boolean;
  550. begin
  551.   Result := (Guid.D1 = $00090035) and (Guid.D2 = $0) and
  552.     (Guid.D4[0] = $C0) and (Guid.D4[1] = $00) and (Guid.D4[2] = $00) and
  553.     (Guid.D4[3] = $00) and (Guid.D4[4] = $00) and (Guid.D4[5] = $00) and
  554.     (Guid.D4[6] = $00) and (Guid.D4[7] = $46);
  555. end;
  556. function IS_SVCID_TCP(const Guid: TGUID): Boolean;
  557. begin
  558.   Result :=
  559.    ((Guid.D1 and DWORD($FFFF0000)) = $00090000) and (Guid.D2 = $0) and
  560.     (Guid.D4[0] = $C0) and (Guid.D4[1] = $00) and (Guid.D4[2] = $00) and
  561.     (Guid.D4[3] = $00) and (Guid.D4[4] = $00) and (Guid.D4[5] = $00) and
  562.     (Guid.D4[6] = $00) and (Guid.D4[7] = $46);
  563. end;
  564. function PORT_FROM_SVCID_TCP(const Guid: TGUID): Word;
  565. begin
  566.   Result := WORD(Guid.D1 and $FFFF);
  567. end;
  568. function RR_FROM_SVCID(const Guid: TGUID): Word;
  569. begin
  570.   Result := Guid.D3;
  571. end;
  572. procedure SET_TCP_SVCID_RR(var Guid: TGUID; _Port, _RR: Word);
  573. begin
  574.   Guid.D1 := ($0009 shl 16) or _Port;
  575.   Guid.D2 := $0;
  576.   Guid.D3 := _RR;
  577.   Guid.D4[0] := $C0;
  578.   Guid.D4[1] := $00;
  579.   Guid.D4[2] := $00;
  580.   Guid.D4[3] := $00;
  581.   Guid.D4[4] := $00;
  582.   Guid.D4[5] := $00;
  583.   Guid.D4[6] := $00;
  584.   Guid.D4[7] := $46;
  585. end;
  586. procedure SET_TCP_SVCID(var Guid: TGUID; Port: Word);
  587. begin
  588.   SET_TCP_SVCID_RR(Guid, Port, 0);
  589. end;
  590. function SVCID_UDP_RR(Port, RR: Word): TGUID;
  591. begin
  592.   Result.D1 := ($000A shl 16) or Port;
  593.   Result.D2 := $0;
  594.   Result.D3 := RR;
  595.   Result.D4[0] := $C0;
  596.   Result.D4[1] := $00;
  597.   Result.D4[2] := $00;
  598.   Result.D4[3] := $00;
  599.   Result.D4[4] := $00;
  600.   Result.D4[5] := $00;
  601.   Result.D4[6] := $00;
  602.   Result.D4[7] := $46;
  603. end;
  604. function SVCID_UDP(Port: Word): TGUID;
  605. begin
  606.   Result := SVCID_UDP_RR(Port, 0);
  607. end;
  608. function IS_SVCID_UDP(const Guid: TGUID): Boolean;
  609. begin
  610.   Result := (Guid.D1 and DWORD($FFFF0000) = $000A0000) and (Guid.D2 = $0) and
  611.     (Guid.D4[0] = $C0) and (Guid.D4[1] = $00) and (Guid.D4[2] = $00) and
  612.     (Guid.D4[3] = $00) and (Guid.D4[4] = $00) and (Guid.D4[5] = $00) and
  613.     (Guid.D4[6] = $00) and (Guid.D4[7] = $46);
  614. end;
  615. function PORT_FROM_SVCID_UDP(const Guid: TGUID): WORD;
  616. begin
  617.   Result := WORD(Guid.D1 and $FFFF);
  618. end;
  619. procedure SET_UDP_SVCID_RR(var Guid: TGUID; Port, RR: WORD);
  620. begin
  621.   Guid.D1 := ($000A shl 16) or Port;
  622.   Guid.D2 := $0;
  623.   Guid.D3 := RR;
  624.   Guid.D4[0] := $C0;
  625.   Guid.D4[1] := $00;
  626.   Guid.D4[2] := $00;
  627.   Guid.D4[3] := $00;
  628.   Guid.D4[4] := $00;
  629.   Guid.D4[5] := $00;
  630.   Guid.D4[6] := $00;
  631.   Guid.D4[7] := $46;
  632. end;
  633. procedure SET_UDP_SVCID(var Guid: TGUID; Port: WORD);
  634. begin
  635.   SET_UDP_SVCID_RR(Guid, Port, 0);
  636. end;
  637. function SVCID_NETWARE(SapId: WORD): TGUID;
  638. begin
  639.   Result.D1 := ($000B shl 16) or SapId;
  640.   Result.D2 := $0;
  641.   Result.D3 := $0;
  642.   Result.D4[0] := $C0;
  643.   Result.D4[1] := $00;
  644.   Result.D4[2] := $00;
  645.   Result.D4[3] := $00;
  646.   Result.D4[4] := $00;
  647.   Result.D4[5] := $00;
  648.   Result.D4[6] := $00;
  649.   Result.D4[7] := $46;
  650. end;
  651. function IS_SVCID_NETWARE(const Guid: TGUID): Boolean;
  652. begin
  653.   Result := (Guid.D1 and DWORD($FFFF0000) = $000B0000) and (Guid.D2 = $0) and
  654.     (Guid.D4[0] = $C0) and (Guid.D4[1] = $00) and (Guid.D4[2] = $00) and
  655.     (Guid.D4[3] = $00) and (Guid.D4[4] = $00) and (Guid.D4[5] = $00) and
  656.     (Guid.D4[6] = $00) and (Guid.D4[7] = $46);
  657. end;
  658. function SAPID_FROM_SVCID_NETWARE(const Guid: TGUID): WORD;
  659. begin
  660.   Result := WORD(Guid.D1 and $FFFF);
  661. end;
  662. procedure SET_NETWARE_SVCID(var Guid: TGUID; SapId: WORD);
  663. begin
  664.   Guid.D1 := ($000B shl 16) or SapId;
  665.   Guid.D2 := $0;
  666.   Guid.D3 := $0;
  667.   Guid.D4[0] := $C0;
  668.   Guid.D4[1] := $00;
  669.   Guid.D4[2] := $00;
  670.   Guid.D4[3] := $00;
  671.   Guid.D4[4] := $00;
  672.   Guid.D4[5] := $00;
  673.   Guid.D4[6] := $00;
  674.   Guid.D4[7] := $46;
  675. end;
  676. end.