Compartilhar via


WSALookupServiceBegin (Windows Sockets)

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Essa função inicia uma consulta cliente que está restrita pelas informações contidas um WSAQUERYSET (Soquetes do Windows) estrutura. Esta função só retornará um identificador, que deve ser usada por chamadas subseqüentes para o WSALookupServiceNext (Soquetes do Windows) função para o real get resultados.

Syntax

INT WSALookupServiceBegin(
  LPWSAQUERYSET lpqsRestrictions,
  DWORD dwControlFlags,
  LPHANDLE lphLookup
);

Parameters

  • lpqsRestrictions
    [no] Ponteiro aos critérios de pesquisa.
  • dwControlFlags
    [no] Sinalizador que controla a intensidade da pesquisa. A seguinte tabela mostra uma lista de sinalizadores para o dwControlFlags parâmetro.

    Sinalizador Descrição

    LUP_DEEP

    Consulta profunda as opposed to apenas o primeiro nível.

    LUP_NOCONTAINERS

    Não retornar qualquer recipientes.

    LUP_NEAREST

    Se possível, retorna os resultados a ordem de distância. A medida de distância é provedor específico.

    LUP_RES_SERVICE

    Indica se resposta principal é o local ou remoto parte o CSADDR_INFO estrutura. A outra parte precisa ser utilizável em ambos os maiúsculas e minúsculas.

    LUP_RETURN_ALIASES

    Qualquer disponível informações alias é a serem retornados em chamadas sucessivas para WSALookupServiceNext (Soquetes do Windows), e cada alias retornado será tem o RESULT_IS_ALIAS Definir sinalizador.

    LUP_RETURN_NAME

    Recupera o nome como lpszServiceInstanceName.

    LUP_RETURN_TYPE

    Recupera o tipo como lpServiceClassId.

    LUP_RETURN_VERSION

    Recupera a versão como lpVersion.

    LUP_RETURN_COMMENT

    Recupera o comentar como lpszComment.

    LUP_RETURN_ADDR

    Recupera os endereços como lpcsaBuffer.

    LUP_RETURN_BLOB

    Recupera o dados particulares como lpBlob.

    LUP_RETURN_ALL

    Recupera todas as informações.

Return Value

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

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

Código de erro Descrição

WSAEINVAL

Um ou mais parâmetros estavam faltando ou inválido para este provedor.

WSANO_DATA

O nome foi encontrado no banco de dados, mas não compatível dados as restrições determinadas foi localizado.

WSANOTINITIALIZED

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

WSASERVICE_NOT_FOUND

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

WSA_NOT_ENOUGH_MEMORY

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

WSAEFAULT

Os parâmetros de restrição especificados na lpqsRestrictions Ou o identificador retornado na lphLookup Por WSALookupServiceBegin não são válidos.

Remarks

Se LUP_CONTAINERS for especificada em um chamar, todos os outros valores de restrição devem ser evitados. Se qualquer são fornecidos, ele é up to o provedor serviço Nome para decidir se ela pode suporte esta restrição sobre os recipientes. Se ele não pode, ele deve retornar um erro.

Alguns provedores serviço nome podem ter outros meios de localizando recipientes. De exemplo, recipientes todos talvez de alguns conhecido tipo, ou de um conjunto de conhecido tipos e, portanto, uma restrição consulta podem ser criada para localizá-los. Não importa quais outros meios de provedor serviço nome tem para localização de recipientes, LUP_CONTAINERS e LUP_NOCONTAINERS tenham prioridade. Portanto, se uma restrição consulta for fornecida que inclui recipientes, especificando será LUP_NOCONTAINERS evitar o contêiner itens do que está sendo retornado. Da mesma forma, não importa a restrição consulta, se LUP_CONTAINERS for fornecido, recipientes somente devem ser retornados. Se um espaço Nome não suporte recipientes e LUP_CONTAINERS for especificada, ele deve simplesmente retornam WSANO_DATA.

Observação

O interno nome DNS espaço provedor não aceitar o LUP_CONTAINERS sinalizador.Especificando o sinalizador LUP_CONTAINERS em um chamar para WSALookupServiceBegin resultará em um erro WSANO_DATA.

O seguinte amostra de código é o método preferencial de obtenção de recipientes outro contêiner.

dwStatus = WSALookupServiceBegin(
      lpqsRestrictions,
      LUP_CONTAINERS,
      lphLookup);

Este chamar é seguido de número necessários do WSALookupServiceNext (Soquetes do Windows) Chamadas. Isso irá retornar todos os recipientes contidos imediatamente o contexto inicial; Ou seja, ele não é uma consulta de profundidade. Com essa, podem um mapa (n.); mapear (v.) a estrutura espaço de endereço por caminhando a hierarquia, enumerando talvez o de conteúdo de recipientes selecionados. Usos subseqüentes WSALookupServiceBegin Use os recipientes retornados de uma chamar anterior.

Conforme mencionado acima, um WSAQUERYSET (Soquetes do Windows) estrutura é usada como um parâmetro de entrada para WSALookupBegin Para qualificar a consulta. A seguinte tabela indica como o WSAQUERYSET (Soquetes do Windows) estrutura é usada para construção uma consulta. Quando um parâmetro está marcado como (opcional), um NULL ponteiro pode ser fornecido, indicando que o parâmetro não será usado como um critério pesquisa.

Membro A interpretação de consulta

dwSize

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

dwOutputflags

Ignorado para consultas.

lpszServiceInstanceName

(Opcional) O relacionado seqüência de caracteres contém nome serviço. A semântica de curinga dentro de seqüência de caracteres não estiverem definida, mas pode ser com suporte por determinados Provedores espaço Nome.

lpServiceClassId

(Obrigatório) O identificador exclusivo (GUID) correspondente para a classe serviço.

lpVersion

(Opcional) Faz referência o número versão desejada e fornece a semântica de comparação versão (ou seja, a versão deve corresponder exatamente ou a versão deve não ser menor do que o valor fornecido).

lpszComment

Ignorado para consultas.

dwNameSpace1

O identificador de um espaço único nome de restringir a pesquisa, ou NS_ALL para incluir todos os espaços Nome.

lpNSProviderId

(Opcional) Faz referência a GUID de um provedor espaço nome específica e limita a consulta para esse provedor só.

lpszContext

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

dwNumberOfProtocols

O tamanho da matriz restrição de protocolo, que pode ser zero.

lpafpProtocols

(Opcional) Uma matriz de referências a AFPROTOCOLS estrutura. Somente serviços que usam esses protocolos serão retornados.

lpszQueryString

(Opcional) Alguns nomes consultas SQL-como suporte enriched espaços (como whois ++) contidas em um seqüência de caracteres de texto simples. Este parâmetro é usado para especificar que seqüência de caracteres.

dwNumberOfCsAddrs

Ignorado para consultas.

lpcsaBuffer

Ignorado para consultas.

lpBlob

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

Importante

Na maioria dos casos, os aplicativos interessados em apenas um protocolo específico transporte devem restringir seu consulta por família de endereços e protocolo rather than pelo nome espaço.Isso permitiria que um aplicativo que precisa localizar um TCP/IP serviço, de exemplo, para ter sua consulta processada por todos os disponível nome espaços such as o local arquivo hosts, sistema de nome de domínio (DNS) e o NIS.

Observações para Bluetooth

Os clientes Bluetooth usam WSALookupServiceBegin (Soquetes do Windows), WSALookupServiceNext (Soquetes do Windows), e WSALookupServiceEnd Para descobrir a existência de um serviço específico sobre o servidor Bluetooth RFCOMM. Consultas podem ser feitas para local e remoto endereços, embora para RFCOMM um cliente pode conectar somente a remoto endereços.

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
WSALookupServiceEnd (Windows Sockets)
WSALookupServiceNext (Windows Sockets)
WSAStartup