WSALookupServiceBegin (Windows Sockets)
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.
- lphLookup
[out] Identificador a ser usado quando chamado WSALookupServiceNext (Soquetes do Windows) Para iniciar recuperar o conjunto de resultados.
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