Compartilhar via


NSPLookupServiceBegin

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

WSALookupServiceBegin Somente retorna um identificador, que deve ser usada por chamadas subseqüentes para WSALookupServiceNext Para o real get resultados. Porque esta operação não pode ser cancelada, ele deve ser implementado para executar rapidamente. Apesar de ser aceitável para iniciar uma consulta rede, essa função não deve exigir uma resposta em ordem para retornar com êxito.

Syntax

int NSPLookupServiceBegin(
  LPGUID lpProviderId,
  LPWSAQUERYSETW lpqsRestrictions,
  LPWSASERVICECLASSINFOW lpServiceClassInfo,
  DWORD dwControlFlags,
  LPHANDLE lphLookup 
);

Parameters

  • lpProviderId
    [no] Contém o identificador provedor específico que deve ser usado para a consulta.
  • lpqsRestrictions
    [no] Contém critérios de pesquisa. Para obter mais informações, consulte abaixo.
  • lpServiceClassInfo
    [no] Estrutura que contém todas as informações de esquema para o serviço.
  • dwControlFlags
    [no] Controla a intensidade da pesquisa. A seguinte tabela mostra os valores possíveis.

    Valor Descrição

    LUP_DEEP

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

    LUP_CONTAINERS

    Return recipientes somente.

    LUP_NOCONTAINERS

    Não retornam os recipientes.

    LUP_FLUSHCACHE

    Se o provedor foi cache informações, ignorar a armazenar em cache e consulta passar o espaço nome próprio.

    LUP_FLUSHPREVIOUS

    Usado como um valor para o dwControlFlags parâmetro no NSPLookupServiceNext. Definir esse sinalizador instrui o provedor para descartar a última conjunto de resultados, que era muito grande para a reserva fornecida e mover em para o próximo conjunto de resultados.

    LUP_NEAREST

    Se possível, retornar resultados na ordem de distância. A medida de distância é provedor específico.

    LUP_RES_RESERVICE

    Indica se resposta principal é o local ou remoto parte 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 NSPLookupServiceNext, 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_WSAVERSION

    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 todos as informações.

  • lphLookup
    [out] Manipular a ser usado em chamadas subseqüentes para NSPLookupServiceNext em ordem para recuperar o conjunto de resultados.

Return Value

A função deve retornar NO_ERROR (zero) se a rotina é bem-sucedida. Ela deve retornar SOCKET_ERROR (– 1) se a rotina falha e ele deve definir o apropriado código de erro usando SetLastError.

A seguinte tabela mostra os códigos de erro possível.

Valor de erro Descrição

WSAEINVAL

Um ou mais parâmetros foram inválido para este provedor ou ausente.

WSANO_DATA

Nome foi encontrado no banco de dados, mas ele não tem o correto associado que está sendo resolvidos para dados.

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 há livre memória disponível para executar esta operação.

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 podem todos ser de alguns conhecido tipo, ou de um conjunto de conhecido tipos e, portanto, uma restrição consulta pôde ser criado 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.

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

dwStatus = NSPLookupServiceBegin(
    lpqsRestrictions,
    LUP_CONTAINERS,
    lphLookup);

seguido de número necessários do NSPLookupServiceNext 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 NSPLookupServiceBegin Use os recipientes retornados de uma chamar anterior.

Formando consultas

Mencionadas como anteriormente, um WSAQUERYSET estrutura é usada como um parâmetro de entrada para NSPLookupServiceBegin em ordem para qualificar a consulta. A seguinte tabela indica como o WSAQUERYSET é usado para construção uma consulta. Quando um membro está marcado como (Opcional) Um NULL ponteiro pode ser fornecido, indicando que o parâmetro será Não ser usado como um critério pesquisa.

Nome membro WSAQUERYSET A interpretação de consulta

dwSize

Será definido como sizeof (WSAQUERYSET). Este é um mecanismo versionamento.

dwOuputFlags

Ignorado para consultas.

lpszServiceInstanceName

(Opcional) Seqüência de caracteres de referência 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 Nome-espaço provedores.

lpServiceClassId

(Necessário) 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 qualquer correspondência exatamente ou deve não ser menor do que o valor fornecido).

lpszComment

Ignorado para consultas.

dwNameSpace

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 nome específico-provedor espaço e limita a consulta para esse provedor só.

lpszContext

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

dwNumberOfProtocols

Tamanho da matriz restrição de protocolo. Isso pode ser zero.

lpafpProtocols

(Opcional) Uma matriz de referências AFPROTOCOLS estrutura. Somente os serviços que utilizam esses protocolos serão retornados. É legal para o valor AF_UNSPEC a ser exibido como uma família protocolo valor, significando uma curinga. Nome espaço provedores podem fornecer informações em qualquer serviço que usa o correspondente protocolo, regardless of família de endereços.

lpszQueryString

(Opcional) Especifica um seqüência de caracteres simples que é uma consulta SQL-LIKE enriched. Alguns nomes suporte espaços (such as whois++) essas consultas.

dwNumberOfCsAddrs

Ignorado para consultas.

lpcsaBuffer

Ignorado para consultas.

lpBlob

(Opcional) Ponteiro para uma entidade Provider-specific.

Requirements

Header ws2spi.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

AFPROTOCOLS
WSAQUERYSET (Windows Sockets)
WSASERVICECLASSINFO
NSPLookupServiceNext