Compartilhar via


WSASetService (Windows Sockets)

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Essa função registra ou remove a partir de Registro uma instância serviço em um ou mais espaços Nome. Esta função pode ser usada para afetar um provedor espaço nome específicos, todos os provedores associado com um espaço nome específico, ou todos os provedores entre todos os espaços Nome.

Observação

WSASetService não é com suporte pela usar como padrão sistema de nome de domínio (DNS)/WINS Namespace provedor (Nspm.dll) em Windows Embedded CE.No entanto, terceiros pode implementar suas possui provedor e ter suporte para esta função se eles escolher.

Observação

Essa função é com suporte pelo provedor de Peer Name Resolution Protocol (PNRP) em Windows Embedded CE.

Syntax

INT WSASetService(
  LPWSAQUERYSET lpqsRegInfo, 
  WSAESETSERVICEOP essOperation, 
  DWORD dwControlFlags
);

Parameters

  • lpqsRegInfo
    [no] Ponteiro para informações de serviço de registro ou cancelamento.
  • essOperation
    [no] Enumeração. A seguinte tabela mostra os valores possíveis.

    Valor Descrição

    RNRSERVICE_REGISTER

    Registra o serviço. Para Service Access Protocol (SAP), isso significa enviando um transmitir periódico. Este não é uma nenhuma operação instrução (NOP) para o espaço nome sistema de nome de domínio (DNS) (sistema de nome de domínio (DNS)). Armazena dados persistentes, isso significa atualizar informações de endereço.

    RNRSERVICE_DEREGISTER

    Remove o serviço de Registro. Para SAP, isso significa parar envio sem a transmitir periódico. Este é um NOP para o espaço nome DNS. Armazena dados persistentes, isso significa excluindo informações endereço.

    RNRSERVICE_DELETE

    Exclui o serviço dinâmico nome e espaços persistentes. Para serviços representados por múltiplo CSADDR_INFO Estruturas (usando o sinalizador SERVICE_MULTIPLE), somente o endereço fornecido será excluído e este deve corresponder exatamente o correspondente CSADDR_INFO estrutura que foi fornecida quando o serviço foi registrado.

  • dwControlFlags
    [no] Descrição de dwControlFlags é dependente em um valor específico. A seguinte tabela mostra esse valor.

    Sinalizador Descrição

    SERVICE Multiple

    Controla o escopo da operação. Quando Clear, serviço endereços são gerenciado como um GRUPO. Um registro ou remoção a partir de Registro invalida todos endereços existentes antes de adicionar o conjunto endereço determinado. Quando definida, a ação é executada somente no conjunto de endereço determinado. Um registro não invalida endereços existentes e uma remoção a partir de Registro somente invalida o conjunto especificado de endereços.

    A seguinte tabela mostra o significado dos valores combinados essOperation e dwControlFlag.

    A operação Sinalizadores O serviço já existe O serviço não existe

    Registro RNRSERVICE_

    Nenhum

    Substitui o objeto e usa somente endereços especificados. O objeto é REGISTERED.

    Cria um novo objeto. Usa somente endereços especificados. Objeto é REGISTERED.

    Registro RNRSERVICE_

    MULTIPLE SERVICE_

    Atualiza objeto e adiciona novos endereços ao conjunto existente. O objeto é REGISTERED.

    Cria um novo objeto. Usa todos os endereços especificados. Objeto é REGISTERED.

    RNRSERVICE_ DEREGISTER

    Nenhum

    Remove todos os endereços, mas ele não remover o objeto do espaço de nome. O objeto será removido do Registro.

    NOT_FOUND WSASERVICE_

    RNRSERVICE_ DEREGISTER

    MULTIPLE SERVICE_

    Atualiza o objeto e remove somente endereços que são especificados. Somente ele marca o objeto como DEREGISTERED se há endereços estiverem presentes. Ele não remover o objeto do espaço de nome.

    NOT_FOUND WSASERVICE_

    RNRSERVICE_ DELETE

    Nenhum

    Remove o objeto do espaço de nome.

    NOT_FOUND WSASERVICE_

    RNRSERVICE_ DELETE

    MULTIPLE SERVICE_

    Remove somente endereços que são especificados. Ele apenas remove o objeto do espaço de nome se há endereços permanecem.

    NOT_FOUND WSASERVICE_

Return Value

O valor de retorno será zero se a operação foi bem-sucedido. Se um erro ocorrer, o valor retornado SOCKET_ERROR, e um número de erro específicas pode ser recuperado por chamado WSAGetLastError.

A seguinte tabela mostra uma lista dos códigos de erro possível.

Código de erro Descrição

WSAEACCES

A rotina chamado não tem privilégios suficientes para instalar o serviço.

WSAEINVAL

Exigido um ou mais parâmetros foram inválido ou ausente.

WSANOTINITIALIZED

WiS2_32.dll não foi inicializada. O aplicativo deve primeiro chamar WSAStartup Antes chamado quaisquer funções Soquetes do Windows.

WSA não ENOUGH memória

Não havia memória suficiente para executar a operação.

WSASERVICE não encontrado

Este serviço não é conhecido. O serviço não pode ser encontrado no espaço para nome especificado.

Remarks

SERVICE_MULTIPLE permite que um aplicativo gerenciar seus endereços de forma independente. Isso é útil quando o aplicativo deseja gerenciar seus protocolos individualmente ou quando o serviço reside em More than um computador. PARA instância, quando um serviço usa mais de um protocolo, ele pode localizar anula que um Soquete de escuta, mas as outras permanecem operacionais. Neste maiúsculas e minúsculas, o serviço pode remover o endereço a partir de Registro sem afetar os outros endereços anulado.

Ao usar SERVICE_MULTIPLE, um aplicativo não deve permitir que obsoleto endereços permanecem no objeto. Isso pode acontecer se o aplicativo anula sem emitir um DEREGISTER solicitação. Quando um serviço registra, ele deve armazenar seus endereços. Em seu próximo chamada, o serviço deve remover explicitamente esses obsoleto antigo endereços a partir de Registro antes de registrar novos endereços.

Propriedades de Serviço

A seguinte tabela descreve como os dados propriedade serviço são representados em um WSAQUERYSET estrutura. Campos rotulado como (opcional) pode ser fornecido com um NULL ponteiro.

Nome membro WSAQUERYSET Propriedade descrição do serviço

dwSize

Deve ser definido como sizeof (WSAQUERYSET). Este é um mecanismo versionamento.

dwOutputFlags

Não aplicável e ignoradas.

LpszServiceInstanceName

O relacionado seqüência de caracteres contém o nome instância serviço.

LpServiceClassId

O identificador exclusivo (GUID) correspondente a essa classe serviço.

LpVersion

(Opcional) Fornece o número versão instância serviço.

LpszComment

(Opcional) Um opcional seqüência de caracteres comentar.

DwNameSpace

Consulte a seguinte tabela.

LpNSProviderId

Consulte a seguinte tabela.

LpszContext

(Opcional) Especifica a raiz da consulta em um hierárquico Nome espaço.

DwNumberOfProtocols

Ignorado.

LpafpProtocols

Ignorado.

LpszQueryString

Ignorado.

DwNumberOfCsAddrs

O número de elementos de matriz de CSADDR_INFO Estruturas relacionado por lpcsaBuffer.

LpcsaBuffer

Um ponteiro para uma matriz de CSADDR_INFO estruturas que contêm os endereços na qual o serviço está escutando.

LpBlob

(Opcional) Este é um ponteiro para uma entidade Provider-specific.

A seguinte tabela mostra como a combinação da dwNameSpace e lpNSProviderId Parâmetros determina que Nome espaço provedores são afetados por essa função.

DwNameSpace lpNSProviderId Impacto

Ignorado

Não-NULL

O provedor espaço nome especificado.

Um válido identificador espaço nome

NULL

Todos os nomes provedores espaço que suporte o espaço nome indicado.

NS_ALL

NULL

Todos os provedores espaço Nome.

Observações para Bluetooth

Chamar servidores RFCOMM WSASetService Para fazer qualquer um do seguinte tarefas:

  • Registrar informações serviço com sockets do Windows (Winsock) e o driver de SDP.
  • Atualize um registro de SDP.
  • Exclua um registro de SDP.

Requirements

Header winsock2.h
Library Ws2.lib
Windows Embedded CE Windows CE .NET 4.0 and later
Windows Mobile Windows Mobile Version 5.0 and later

See Also

Reference

WSAGetLastError
WSAStartup