SetServiceBits

【勇芳软件工作室】汉化HomePreviousNext

SetServiceBits功能将服务的服务类型与服务控制管理器和服务器服务注册。然后,服务器服务可以将注册的服务类型公布为当前支持的类型。LAN Manager功能NetServerGetInfoNetServerEnum获取指定的机器支持的服务类型。

服务类型表示为一组位标志; SetServiceBits功能设置或清除这些位标志的组合。

BOOL SetServiceBits(

SERVICE_STATUS_HANDLE【hServiceStatus】,//服务状态句柄
DWORD【dwServiceBits】,//服务类型位设置或清除
BOOL【bSetBitsOn】,//标志设置或清除服务类型位
BOOL 【bUpdateImmediately】//标志立即通知服务器类型
); 

参数

【hServiceStatus】

服务控制管理员的服务状态信息结构的句柄。服务通过调用RegisterServiceCtrlHandler函数获取SERVICE_STATUS_HANDLE值。这是服务控制管理器拨打电话的方式。

【dwServiceBits】

一组指定服务类型的位标志。

某些位标志(0xC00F3F7B)保留供Microsoft使用。SetServiceBits函数失败,错误ERROR_INVALID_DATA,如果在【dwServiceBits】中设置了任何这些位标志。这些位标志中有18个:

位标志常数
SV_TYPE_WORKSTATION0x00000001
SV_TYPE_SERVER0x00000002
SV_TYPE_DOMAIN_CTRL0x00000008
SV_TYPE_DOMAIN_BAKCTRL0x00000010
SV_TYPE_TIME_SOURCE0x00000020
SV_TYPE_AFP0x00000040
SV_TYPE_DOMAIN_MEMBER0x00000100
SV_TYPE_PRINTQ_SERVER0x00000200
SV_TYPE_DIALIN_SERVER0x00000400
SV_TYPE_XENIX_SERVER0x00000800
SV_TYPE_SERVER_UNIX0x00000800
SV_TYPE_NT0x00001000
SV_TYPE_WFW0x00002000
SV_TYPE_POTENTIAL_BROWSER0x00010000
SV_TYPE_BACKUP_BROWSER0x00020000
SV_TYPE_MASTER_BROWSER0x00040000
SV_TYPE_DOMAIN_MASTER0x00080000
SV_TYPE_LOCAL_LIST_ONLY0x40000000
SV_TYPE_DOMAIN_ENUM0x80000000

某些位标志(0x00300084)由Microsoft定义,但并不专门为系统软件保留。这些位标志有四个:

位标志常数
SV_TYPE_SV_TYPE_SQLSERVER0x00000004
SV_TYPE_NOVELL0x00000080
SV_TYPE_DOMAIN_CTRL0x00100000
SV_TYPE_DOMAIN_BAKCTRL0x00200000

某些位标志(0x3FC0C000)未被Microsoft定义,并且它们的使用不受Microsoft协调。使用这些位的应用程序的开发人员应该意识到其他应用程序也可能使用它们,从而产生冲突。这些位标志中有10个:

0x000040000x02000000
0x000080000x04000000
0x004000000x08000000
0x008000000x10000000
0x010000000x20000000

【bSetBitsOn】

一个BOOLEAN,它指定函数是否设置或清除【dwServiceBit.】中设置的位标志。值TRUE指定要设置的位; FALSE指定清除。

【bUpdateImmediately】

一个BOOLEAN,指定服务器服务是否要执行即时更新,宣布新的服务类型。值TRUE指定立即更新; FALSE否则指定。

返回值

如果函数成功,返回值不为零。

如果函数失败,返回值为零。要获取扩展错误信息,请调用GetLastError.

也可以看看

NetServerGetInfo, NetServerEnum, RegisterServiceCtrlHandler, SetServiceStatus