SetService function

The SetService function registers or removes from the registry a network service within one or more namespaces. The function can also add or remove a network service type within one or more namespaces.

Note  The SetService function is obsolete. The functions detailed in Protocol-Independent Name Resolution provide equivalent functionality in Windows Sockets 2. For the convenience of Windows Sockets 1.1 developers, the reference material is as follows.
 

Syntax


INT SetService(
  _In_     DWORD                dwNameSpace,
  _In_     DWORD                dwOperation,
  _In_     DWORD                dwFlags,
  _In_     LPSERVICE_INFO       lpServiceInfo,
  _In_opt_ LPSERVICE_ASYNC_INFO lpServiceAsyncInfo,
  _Out_    LPDWORD              lpdwStatusFlags
);

Parameters

dwNameSpace [in]

The namespace, or a set of default namespaces, within which the function will operate.

Use one of the following constants to specify a namespace.

ValueMeaning
NS_DEFAULT

A set of default namespaces. The function queries each namespace within this set. The set of default namespaces typically includes all the namespaces installed on the system. System administrators, however, can exclude particular namespaces from the set. NS_DEFAULT is the value that most applications should use for dwNameSpace.

NS_DNS

The Domain Name System used in the Internet to resolve the name of the host.

NS_NDS

The NetWare 4 provider.

NS_NETBT

The NetBIOS over TCP/IP layer. All Windows systems register their computer names with NetBIOS. This namespace is used to convert a computer name to an IP address that uses this registration.

NS_SAP

The NetWare Service Advertising Protocol. This can access the NetWare bindery, if appropriate. NS_SAP is a dynamic namespace that enables the registration of services.

NS_TCPIP_HOSTS

Lookup value in the <systemroot>\system32\drivers\etc\posts file.

NS_TCPIP_LOCAL

Local TCP/IP name resolution mechanisms, including comparisons against the local host name and lookup value in the cache of host to IP address mappings.

 

dwOperation [in]

The operation that the function will perform. Use one of the following values to specify an operation:

ValueMeaning
SERVICE_REGISTER

Register the network service with the namespace. This operation can be used with the SERVICE_FLAG_DEFER and SERVICE_FLAG_HARD bit flags.

SERVICE_DEREGISTER

Remove from the registry the network service from the namespace. This operation can be used with the SERVICE_FLAG_DEFER and SERVICE_FLAG_HARD bit flags.

SERVICE_FLUSH

Perform any operation that was called with the SERVICE_FLAG_DEFER bit flag set to one.

SERVICE_ADD_TYPE

Add a service type to the namespace.

For this operation, use the ServiceSpecificInfo member of the SERVICE_INFO structure pointed to by lpServiceInfo to pass a SERVICE_TYPE_INFO_ABS structure. You must also set the ServiceType member of the SERVICE_INFO structure. Other SERVICE_INFO members are ignored.

SERVICE_DELETE_TYPE

Remove a service type, added by a previous call specifying the SERVICE_ADD_TYPE operation, from the namespace.

 

dwFlags [in]

A set of bit flags that modify the function's operation. You can set one or more of the following bit flags:

ValueMeaning
SERVICE_FLAG_DEFER

This bit flag is valid only if the operation is SERVICE_REGISTER or SERVICE_DEREGISTER.

If this bit flag is one, and it is valid, the namespace provider should defer the registration or deregistration operation until a SERVICE_FLUSH operation is requested.

SERVICE_FLAG_HARD

This bit flag is valid only if the operation is SERVICE_REGISTER or SERVICE_DEREGISTER.

If this bit flag is one, and it is valid, the namespace provider updates any relevant persistent store information when the operation is performed.

For example: If the operation involves deregistration in a namespace that uses a persistent store, the namespace provider would remove the relevant persistent store information.

 

lpServiceInfo [in]

A pointer to a SERVICE_INFO structure that contains information about the network service or service type.

lpServiceAsyncInfo [in, optional]

Reserved for future use. Must be set to NULL.

lpdwStatusFlags [out]

A set of bit flags that receive function status information. The following bit flag is defined:

ValueMeaning
SET_SERVICE_ PARTIAL_SUCCESS

One or more namespace providers were unable to successfully perform the requested operation.

 

Return value

If the function fails, the return value is SOCKET_ERROR. To get extended error information, call GetLastError. GetLastError can return the following extended error value.

Error codeMeaning
ERROR_ALREADY_ REGISTERED

The function tried to register a service that was already registered.

 

Requirements

Minimum supported client

Windows 2000 Professional [desktop apps only]

Minimum supported server

Windows 2000 Server [desktop apps only]

Header

Nspapi.h

Library

Mswsock.lib

DLL

Mswsock.dll

Unicode and ANSI names

SetServiceW (Unicode) and SetServiceA (ANSI)

See also

Winsock Reference
Winsock Functions
GetService
SERVICE_INFO
SERVICE_TYPE_INFO_ABS

 

 

Show: