📄 svcguid.h
字号:
/*++ BUILD Version: 0001 // Increment this if a change has global effects
Copyright (c) 1992-1999 Microsoft Corporation
Module Name:
svcguid.h
Abstract:
Defines GUIDs for well-known services including:
HOSTNAME
RFC 1060 (Assigned Numbers) from IANA (All TCP/IP Services)
NetWare services
Created:
May 8, 1994
Revision History:
--*/
#ifndef _SVCGUID_
#pragma option push -b -a8 -pc -A- /*P_O_Push*/
#define _SVCGUID_
#if _MSC_VER > 1000
#pragma once
#endif
#include <basetyps.h>
//
// HOSTNAME--special GUID which refers to the name of a host as opposed
// to any particular service on that host.
//
#define SVCID_HOSTNAME { 0x0002a800, 0, 0, { 0xC0,0,0,0,0,0,0,0x46 } }
//
// GUIDs for dealing with AF_INET address spaces alone. These are
// intended to be used when fetching hostent or servent information
// from such a provider. These are not general-purpose types and
// should be used only when the intent is getting at down-level
// information.
//
#define SVCID_INET_HOSTADDRBYINETSTRING \
{ 0x0002a801, 0, 0, { 0xC0,0,0,0,0,0,0,0x46 } }
#define SVCID_INET_SERVICEBYNAME \
{ 0x0002a802, 0, 0, { 0xC0,0,0,0,0,0,0,0x46 } }
#define SVCID_INET_HOSTADDRBYNAME \
{ 0x0002a803, 0, 0, { 0xC0,0,0,0,0,0,0,0x46 } }
//
// Macros for defining and testing TCP and UDP GUIDs from a well-known
// port.
//
#define SVCID_TCP_RR(_Port, _RR) \
{ (0x0009 << 16) | (_Port), 0, _RR, { 0xC0,0,0,0,0,0,0,0x46 } }
#define SVCID_TCP(_Port) SVCID_TCP_RR(_Port, 0)
#define SVCID_DNS(_RecordType) SVCID_TCP_RR(53, _RecordType)
#define IS_SVCID_DNS(_g) \
( (((_g)->Data1) == 0x00090035) && \
(((_g)->Data2) == 0) && \
(((_g)->Data4[0]) == 0xC0) && \
(((_g)->Data4[1]) == 0) && \
(((_g)->Data4[2]) == 0) && \
(((_g)->Data4[3]) == 0) && \
(((_g)->Data4[4]) == 0) && \
(((_g)->Data4[5]) == 0) && \
(((_g)->Data4[6]) == 0) && \
(((_g)->Data4[7]) == 0x46) )
#define IS_SVCID_TCP(_g) \
( ((((_g)->Data1) & 0xFFFF0000) == 0x00090000) && \
(((_g)->Data2) == 0) && \
(((_g)->Data4[0]) == 0xC0) && \
(((_g)->Data4[1]) == 0) && \
(((_g)->Data4[2]) == 0) && \
(((_g)->Data4[3]) == 0) && \
(((_g)->Data4[4]) == 0) && \
(((_g)->Data4[5]) == 0) && \
(((_g)->Data4[6]) == 0) && \
(((_g)->Data4[7]) == 0x46) )
#define PORT_FROM_SVCID_TCP(_g) \
((WORD)(_g->Data1 & 0xFFFF))
#define RR_FROM_SVCID(_RR) (_RR->Data3)
#define SET_TCP_SVCID_RR(_g,_Port, _RR) { \
(_g)->Data1 = (0x0009 << 16 ) | (_Port); \
(_g)->Data2 = 0; \
(_g)->Data3 = _RR; \
(_g)->Data4[0] = 0xC0; \
(_g)->Data4[1] = 0x0; \
(_g)->Data4[2] = 0x0; \
(_g)->Data4[3] = 0x0; \
(_g)->Data4[4] = 0x0; \
(_g)->Data4[5] = 0x0; \
(_g)->Data4[6] = 0x0; \
(_g)->Data4[7] = 0x46; }
#define SET_TCP_SVCID(_g,_Port) SET_TCP_SVCID_RR(_g, _Port, 0)
#define SVCID_UDP_RR(_Port, _RR) \
{ (0x000A << 16) | (_Port), 0, _RR, { 0xC0,0,0,0,0,0,0,0x46 } }
#define SVCID_UDP(_Port) SVCID_UDP_RR(_Port, 0)
#define IS_SVCID_UDP(_g) \
( ((((_g)->Data1) & 0xFFFF0000) == 0x000A0000) && \
(((_g)->Data2) == 0) && \
(((_g)->Data4[0]) == 0xC0) && \
(((_g)->Data4[1]) == 0) && \
(((_g)->Data4[2]) == 0) && \
(((_g)->Data4[3]) == 0) && \
(((_g)->Data4[4]) == 0) && \
(((_g)->Data4[5]) == 0) && \
(((_g)->Data4[6]) == 0) && \
(((_g)->Data4[7]) == 0x46) )
#define PORT_FROM_SVCID_UDP(_g) \
((WORD)(_g->Data1 & 0xFFFF))
#define SET_UDP_SVCID_RR(_g,_Port, _RR) { \
(_g)->Data1 = (0x000A << 16 ) | (_Port); \
(_g)->Data2 = 0; \
(_g)->Data3 = _RR; \
(_g)->Data4[0] = 0xC0; \
(_g)->Data4[1] = 0x0; \
(_g)->Data4[2] = 0x0; \
(_g)->Data4[3] = 0x0; \
(_g)->Data4[4] = 0x0; \
(_g)->Data4[5] = 0x0; \
(_g)->Data4[6] = 0x0; \
(_g)->Data4[7] = 0x46; }
#define SET_UDP_SVCID(_g, _Port) SET_UDP_SVCID_RR(_g, _Port, 0)
//
// Macros for defining and testing Netware (SAP) services based on the
// SAP ID.
//
#define SVCID_NETWARE(_SapId) \
{ (0x000B << 16) | (_SapId), 0, 0, { 0xC0,0,0,0,0,0,0,0x46 } }
#define IS_SVCID_NETWARE(_g) \
( ((((_g)->Data1) & 0xFFFF0000) == 0x000B0000) && \
(((_g)->Data2) == 0) && \
(((_g)->Data3) == 0) && \
(((_g)->Data4[0]) == 0xC0) && \
(((_g)->Data4[1]) == 0) && \
(((_g)->Data4[2]) == 0) && \
(((_g)->Data4[3]) == 0) && \
(((_g)->Data4[4]) == 0) && \
(((_g)->Data4[5]) == 0) && \
(((_g)->Data4[6]) == 0) && \
(((_g)->Data4[7]) == 0x46) )
#define SAPID_FROM_SVCID_NETWARE(_g) \
((WORD)(_g->Data1 & 0xFFFF))
#define SET_NETWARE_SVCID(_g,_SapId) { \
(_g)->Data1 = (0x000B << 16 ) | (_SapId); \
(_g)->Data2 = 0; \
(_g)->Data3 = 0; \
(_g)->Data4[0] = 0xC0; \
(_g)->Data4[1] = 0x0; \
(_g)->Data4[2] = 0x0; \
(_g)->Data4[3] = 0x0; \
(_g)->Data4[4] = 0x0; \
(_g)->Data4[5] = 0x0; \
(_g)->Data4[6] = 0x0; \
(_g)->Data4[7] = 0x46; }
//
// RFC 1060 services as defined by the IANA
// GUID block = 0009xxxx-0000-0000-C0000-000000000046
//
#define SVCID_ECHO_TCP SVCID_TCP( 7 )
#define SVCID_DISCARD_TCP SVCID_TCP( 9 )
#define SVCID_SYSTAT_TCP SVCID_TCP( 11 )
#define SVCID_SYSTAT_TCP SVCID_TCP( 11 )
#define SVCID_DAYTIME_TCP SVCID_TCP( 13 )
#define SVCID_NETSTAT_TCP SVCID_TCP( 15 )
#define SVCID_QOTD_TCP SVCID_TCP( 17 )
#define SVCID_CHARGEN_TCP SVCID_TCP( 19 )
#define SVCID_FTP_DATA_TCP SVCID_TCP( 20 )
#define SVCID_FTP_TCP SVCID_TCP( 21 )
#define SVCID_TELNET_TCP SVCID_TCP( 23 )
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -