SetServiceBits
The SetServiceBits
function registers a service s service type with the Service Control Manager
and the Server service. The Server service can then announce the registered
service type as one it currently supports. The LAN Manager functions NetServerGetInfo
A service
type is represented as a set of bit flags; the SetServiceBits function
sets or clears combinations of those bit flags.
BOOL SetServiceBits(
SERVICE_STATUS_HANDLE hServiceStatus, |
// service status
handle |
DWORD dwServiceBits, |
// service type
bits to set or clear |
BOOL bSetBitsOn, |
// flag to set or
clear the service type bits |
BOOL
bUpdateImmediately |
// flag to announce
server type immediately |
); |
|
Parameters
hServiceStatus
A handle to
the Service Control Manager s status information structure for a service. A
service obtains a SERVICE_STATUS_HANDLE value by calling the RegisterServiceCtrlHandler
dwServiceBits
A set of bit
flags that specifies a service type.
Certain bit
flags (0xC00F3F7B) are reserved for use by Microsoft. The SetServiceBits
function fails with the error ERROR_INVALID_DATA if any of these bit flags are
set in dwServiceBits. There are 18 of these bit flags:
Bit Flag
Constant |
Value |
SV_TYPE_WORKSTATION |
0x00000001 |
SV_TYPE_SERVER |
0x00000002 |
SV_TYPE_DOMAIN_CTRL |
0x00000008 |
SV_TYPE_DOMAIN_BAKCTRL |
0x00000010 |
SV_TYPE_TIME_SOURCE |
0x00000020 |
SV_TYPE_AFP |
0x00000040 |
SV_TYPE_DOMAIN_MEMBER |
0x00000100 |
SV_TYPE_PRINTQ_SERVER |
0x00000200 |
SV_TYPE_DIALIN_SERVER |
0x00000400 |
SV_TYPE_XENIX_SERVER |
0x00000800 |
SV_TYPE_SERVER_UNIX
|
0x00000800 |
SV_TYPE_NT |
0x00001000 |
SV_TYPE_WFW |
0x00002000 |
SV_TYPE_POTENTIAL_BROWSER |
0x00010000 |
SV_TYPE_BACKUP_BROWSER |
0x00020000 |
SV_TYPE_MASTER_BROWSER |
0x00040000 |
SV_TYPE_DOMAIN_MASTER |
0x00080000 |
SV_TYPE_LOCAL_LIST_ONLY |
0x40000000 |
SV_TYPE_DOMAIN_ENUM |
0x80000000 |
Certain bit
flags (0x00300084) are defined by Microsoft, but are not specifically reserved
for systems software. There are four of these bit flags:
Bit Flag
Constant |
Value |
SV_TYPE_SV_TYPE_SQLSERVER |
0x00000004 |
SV_TYPE_NOVELL |
0x00000080 |
SV_TYPE_DOMAIN_CTRL |
0x00100000 |
SV_TYPE_DOMAIN_BAKCTRL |
0x00200000 |
Certain bit
flags (0x3FC0C000) are not defined by Microsoft, and their use is not
coordinated by Microsoft. Developers of applications that use these bits should
be aware that other applications may also use them, thus creating a conflict.
There are 10 of these bit flags:
Value |
Value |
0x00004000 |
0x02000000 |
0x00008000 |
0x04000000 |
0x00400000 |
0x08000000 |
0x00800000 |
0x10000000 |
0x01000000 |
0x20000000 |
bSetBitsOn
A BOOLEAN
that specifies whether the function is to set or clear the bit flags that are
set in dwServiceBit. The value TRUE specifies that the bits are to be
set; FALSE specifies clearing.
bUpdateImmediately
A BOOLEAN
that specifies whether the Server service is to perform an immediate update, announcing
the new service type. The value TRUE specifies an immediate update; FALSE
specifies otherwise.
Return Values
If the
function succeeds, the return value is nonzero.
If the
function fails, the return value is zero. To get extended error information,
call GetLastError
See Also