SetServiceBits  139UXB. 

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 NetServerGetInfo9U8_WY and NetServerEnum69Q..RN obtain a specified machine s supported service types.

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 RegisterServiceCtrlHandlerHBD0D. function. It is the service s handle for making calls to the Service Control Manager.

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 GetLastError11C2VS7.

See Also

NetServerGetInfo, NetServerEnum, RegisterServiceCtrlHandler, SetServiceStatus