SERVICE_INFO结构包含有关网络服务或网络服务类型的信息。
typedef struct _SERVICE_INFO {
LPGUID lpServiceType;
LPTSTR lpServiceName;
LPTSTR lpComment;
LPTSTR lpLocale;
DWORD dwDisplayHint;
DWORD dwVersion;
DWORD dwTime;
LPTSTR lpMachineName;
LPSERVICE_ADDRESSES lpServiceAddress;
BLOB ServiceSpecificInfo;
} SERVICE_INFO;
会员
lpServiceType
指向作为网络服务类型的GUID。
lpServiceName
指向作为网络服务名称的零终止字符串。
如果您使用dwNameSpace参数设置为NS_DEFAULT来调用SetService函数,则网络服务名称必须是通用名称通用名称是通常称为网络服务。网络服务的通用名称的示例是“我的SQL Server”。
如果您使用SetService参数设置为特定服务名称的SetService功能,则网络服务名称可以是通用名称或专有名称。专有名称将服务与具有目录服务的唯一位置区分开。网络服务的可分辨名称的示例是“MS \\\\ SYS \\\\ NT \\\\ DEV \\\\我的SQL Server”。
lpComment
指向作为网络服务的注释或描述的零终止字符串。例如,“用于开发升级”。
lpLocale
指向包含区域设置信息的零终止字符串。
dwDisplayHint
指定如何在网络浏览用户界面中显示网络服务的提示。这可以是以下值之一:
值 | 含义 |
RESOURCEDISPLAYTYPE_DOMAIN | 将网络服务显示为域。 |
RESOURCEDISPLAYTYPE_FILE | 将网络服务显示为文件。 |
RESOURCEDISPLAYTYPE_GENERIC | 用于显示对象的方法并不重要。 |
RESOURCEDISPLAYTYPE_GROUP | 以组为单位显示网络服务。 |
RESOURCEDISPLAYTYPE_SERVER | 将网络服务显示为服务器。 |
RESOURCEDISPLAYTYPE_SHARE | 将网络服务显示为共享点。 |
RESOURCEDISPLAYTYPE_TREE | 将网络服务显示为树。 |
dwVersion
指定网络服务的版本信息。该值的高字表示主版本号。该值的低字指定次要版本号。
dwTime
此成员保留将来使用。它必须设置为零。
lpMachineName
指向作为运行网络服务的计算机的名称的零终止字符串。
lpServiceAddress
指向包含SERVICE_ADDRESS 结构数组的SERVICE_ADDRESSES 结构。每个SERVICE_ADDRESS结构包含有关网络服务地址的信息。
网络服务可以调用getsockname功能来确定系统的本地地址。
ServiceSpecificInfo
指定服务定义信息的BLOB结构。
请注意,一般来说,BLOB结构的pBlobData成员指向的数据不能包含任何指针。这是因为只有网络服务知道数据的格式;复制没有这种知识的数据将导致指针无效。如果pBlobData指向的数据包含可变大小的元素,则pBlobData的偏移量可用于指示这些元素的位置。这个一般规则有一个例外:pBlobData指向SERVICE_TYPE_INFO_ABS结构。这是可能的,因为SERVICE_TYPE_INFO_ABS结构及其包含的任何SERVICE_TYPE_VALUE_ABS结构都是预定义的,因此它们的格式对于操作系统是已知的。
也可以看看
BLOB, GetService, NS_SERVICE_INFO, SetService, SERVICE_ADDRESS, SERVICE_ADDRESSES, SERVICE_TYPE_INFO_ABS, SERVICE_TYPE_VALUE_ABS