Compartilhar via


Função SetServiceA (nspapi.h)

A função SetService registra ou remove do registro um serviço de rede em um ou mais namespaces. A função também pode adicionar ou remover um tipo de serviço de rede em um ou mais namespaces.

Nota A função SetService está obsoleta. As funções detalhadas na Resolução de Nomes Independentes de Protocolo fornecem funcionalidade equivalente no Windows Sockets 2. Para a conveniência dos desenvolvedores do Windows Sockets 1.1, o material de referência é o seguinte.
 

Sintaxe

INT SetServiceA(
  [in]           DWORD                dwNameSpace,
  [in]           DWORD                dwOperation,
  [in]           DWORD                dwFlags,
  [in]           LPSERVICE_INFOA      lpServiceInfo,
  [in, optional] LPSERVICE_ASYNC_INFO lpServiceAsyncInfo,
  [out]          LPDWORD              lpdwStatusFlags
);

Parâmetros

[in] dwNameSpace

O namespace ou um conjunto de namespaces padrão, no qual a função funcionará.

Use uma das seguintes constantes para especificar um namespace.

Valor Significado
NS_DEFAULT
Um conjunto de namespaces padrão. A função consulta cada namespace dentro desse conjunto. O conjunto de namespaces padrão normalmente inclui todos os namespaces instalados no sistema. No entanto, os administradores do sistema podem excluir namespaces específicos do conjunto. NS_DEFAULT é o valor que a maioria dos aplicativos deve usar para dwNameSpace.
NS_DNS
O Sistema de Nomes de Domínio usado na Internet para resolve o nome do host.
NS_NDS
O provedor do NetWare 4.
NS_NETBT
A camada NetBIOS sobre TCP/IP. Todos os sistemas Windows registram seus nomes de computador com NetBIOS. Esse namespace é usado para converter um nome de computador em um endereço IP que usa esse registro.
NS_SAP
O Protocolo de Publicidade do Serviço NetWare. Isso pode acessar a associação netware, se apropriado. NS_SAP é um namespace dinâmico que permite o registro de serviços.
NS_TCPIP_HOSTS
Valor de pesquisa no <arquivo systemroot>\system32\drivers\etc\posts.
NS_TCPIP_LOCAL
Mecanismos de resolução de nomes TCP/IP locais, incluindo comparações com o nome do host local e o valor de pesquisa no cache de mapeamentos de host para endereço IP.

[in] dwOperation

A operação que a função executará. Use um dos seguintes valores para especificar uma operação:

Valor Significado
SERVICE_REGISTER
Registre o serviço de rede com o namespace . Essa operação pode ser usada com os sinalizadores de SERVICE_FLAG_DEFER e SERVICE_FLAG_HARD bits.
SERVICE_DEREGISTER
Remova do registro o serviço de rede do namespace. Essa operação pode ser usada com os sinalizadores de SERVICE_FLAG_DEFER e SERVICE_FLAG_HARD bits.
SERVICE_FLUSH
Execute qualquer operação que tenha sido chamada com o sinalizador de SERVICE_FLAG_DEFER bit definido como um.
SERVICE_ADD_TYPE
Adicione um tipo de serviço ao namespace .

Para essa operação, use o membro ServiceSpecificInfo da estrutura SERVICE_INFO apontada por lpServiceInfo para passar uma estrutura SERVICE_TYPE_INFO_ABS . Você também deve definir o membro ServiceType da estrutura SERVICE_INFO . Outros membros SERVICE_INFO são ignorados.

SERVICE_DELETE_TYPE
Remova um tipo de serviço, adicionado por uma chamada anterior especificando a operação SERVICE_ADD_TYPE, do namespace .

[in] dwFlags

Um conjunto de sinalizadores de bits que modificam a operação da função. Você pode definir um ou mais dos seguintes sinalizadores de bits:

Valor Significado
SERVICE_FLAG_DEFER
Esse sinalizador de bit só será válido se a operação for SERVICE_REGISTER ou SERVICE_DEREGISTER.

Se esse sinalizador de bits for um e for válido, o provedor de namespace deverá adiar a operação de registro ou cancelamento do registro até que uma operação de SERVICE_FLUSH seja solicitada.

SERVICE_FLAG_HARD
Esse sinalizador de bit só será válido se a operação for SERVICE_REGISTER ou SERVICE_DEREGISTER.

Se esse sinalizador de bits for um e for válido, o provedor de namespace atualizará todas as informações relevantes do repositório persistente quando a operação for executada.

Por exemplo: se a operação envolver o cancelamento do registro em um namespace que usa um repositório persistente, o provedor de namespace removerá as informações relevantes do repositório persistente.

[in] lpServiceInfo

Um ponteiro para uma estrutura SERVICE_INFO que contém informações sobre o serviço de rede ou o tipo de serviço.

[in, optional] lpServiceAsyncInfo

Reservado para uso futuro. Deve ser definido como NULL.

[out] lpdwStatusFlags

Um conjunto de sinalizadores de bits que recebem informações de status função. O seguinte sinalizador de bits é definido:

Valor Significado
SET_SERVICE_ PARTIAL_SUCCESS
Um ou mais provedores de namespace não conseguiram executar a operação solicitada com êxito.

Retornar valor

Se a função falhar, o valor retornado será SOCKET_ERROR. Para obter informações de erro estendidas, chame GetLastError. GetLastError pode retornar o seguinte valor de erro estendido.

Código do erro Significado
ERROR_ALREADY_ REGISTRADO
A função tentou registrar um serviço que já estava registrado.

Comentários

Observação

O cabeçalho nspapi.h define SetService como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho nspapi.h
Biblioteca Mswsock.lib
DLL Mswsock.dll

Confira também

GetService

SERVICE_INFO

SERVICE_TYPE_INFO_ABS

Funções Winsock

Referência de Winsock