NSPLookupServiceBegin
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