NSPLookupServiceNext
9/8/2008
Essa função é chamado depois de obter um identificador de um chamar anterior para NSPLookupServiceBegin em ordem para recuperar informações de serviço solicitado.
O provedor vai transmitir voltar um WSAQUERYSET estrutura in a lpqsResults reserva. O cliente deve continuar a chamar essa função até que ele retorne WSA_E_NOMORE, indicando que todos os WSAQUERYSET tenham sido retornados.
Syntax
int NSPAPI WSALookupServiceNext(
HANDLE hLookup,
DWORD dwControlFlags,
LPDWORD lpdwBufferLength,
LPWSAQUERYSET lpqsResults
);
Parameters
- hLookup
[no] Manipular retornado do chamar anterior para WSALookupServiceBegin.
- dwControlFlags
[no] Sinalizadores para o próximo controle operação. No momento, apenas LUP_FLUSHPREVIOUS é definido como um meio para lidar com um conjunto de resultados que é muito grande. Se um aplicativo não fornecer uma reserva grande o suficiente, configuração LUP_FLUSHPREVIOUS instrui o provedor para descartar a última conjunto de resultados, que era muito grande e mover para o próximo definidas para este chamar.
- lpdwBufferLength
[in, Out] Na entrada, o número de bytes contidos na reserva apontado pelo lpqsResults. Na saída, se a função falhar e o erro é WSAEFAULT, ele contém o número mínimo de bytes para transmitir para o lpqsResults Para recuperar o registro.
- lpqsResults
[out] Ponteiro para uma bloco de memória que conterá um conjunto de resultados em um WSAQUERYSET estrutura no retorno.
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 |
---|---|
WSA_E_NO_MORE |
Não há nenhum dados mais disponível. Em sockets do Windows (Winsock), conflitantes códigos de erro são definidos para WSAENOMORE (10102) e WSA_E_NO_MORE (10110). O código de erro que WSAENOMORE será removido em uma versão futura e apenas WSA_E_NO_MORE permanecerá. Nome espaço provedores devem alternar a usar o código de erro WSA_E_NO_MORE as soon as Possible para manter compatibilidade com o maior intervalo possível de aplicativos. |
WSA_E_CANCELLED |
Chamada para NSPLookupServiceEnd Foi feita enquanto este chamar era ainda processamento. A chamada foi cancelada. Os dados na lpqsResults reserva é indefinido. Em sockets do Windows (Winsock), conflitantes códigos de erro são definidos para WSAECANCELLED (10103) e WSA_E_CANCELLED (10111) .o código de erro que WSAECANCELLED será removido em uma versão futura e apenas WSA_E_CANCELLED será mantido. Nome espaço provedores devem alternar a usar o código de erro WSA_E_CANCELLED as soon as Possible para manter compatibilidade com o maior intervalo possível de aplicativos. |
WSAEFAULT |
O lpqsResults reserva era muito pequena para conter um WSAQUERYSET Defina. |
WSAEINVAL |
Um ou mais parâmetros foram inválido ou ausente para este provedor. |
WSA_INVALID_HANDLE |
Especificado pesquisa identificador é inválido. |
WSANO_DATA |
O nome foi encontrado no banco de dados, mas não compatível dados as restrições determinadas foi localizado. |
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
O dwControlFlags especificado nessa função e as especificadas no tempo de NSPLookupServiceBegin são tratados como "Restrições" o objetivo de combinação. As restrições são combinadas entre aqueles no NSPLookupServiceBegin tempo e aqueles em NSPLookupServiceNext tempo. Portanto, os sinalizadores no NSPLookupServiceNext nunca pode aumentar a quantidade de dados retornados além que foi solicitado no NSPLookupServiceBegin, embora ele seja Não Erro ao especificar mais ou menos sinalizadores. Os sinalizadores especificados em um determinado NSPLookupServiceNext aplicar somente a esse chamar.
O dwControlFlags LUP_FLUSHPREVIOUS e LUP_RES_SERVICE são exceções à regra restrições combinadas, porque são sinalizadores comportamento em vez de sinalizadores de restrição. Se um desses sinalizadores é usado no NSPLookupServiceNext, tenham sua efeito definido regardless of a configuração dos mesmos sinalizadores no NSPLookupServiceBegin.
De exemplo, se LUP_RETURN_VERSION for especificada no NSPLookupServiceBegin, o provedor serviço recupera registros incluindo a versão. Se estiver LUP_RETURN_VERSION Não especificado no NSPLookupServiceNext, as informações retornadas não inclui a versão, mesmo que estava disponível. Nenhum erro será gerado.
Também de exemplo, se estiver LUP_RETURN_BLOB Não especificado no NSPLookupServiceBegin Mas é especificado no NSPLookupServiceNext, as informações retornadas não inclui o dados particulares. Nenhum erro será gerado.
A seguinte tabela descreve como os resultados da consulta são representados na WSAQUERYSET estrutura.
Nome membro WSAQUERYSET | A interpretação de resultados |
---|---|
dwSize |
Será definido como sizeof (WSAQUERYSET). Isso é usado como um mecanismo versionamento. |
dwOuputFlags |
Sinalizador RESULT_IS_ALIAS indica que este é um resultado alias. |
lpszServiceInstanceName |
Faz referência a seqüência de caracteres que contém o nome serviço. |
lpServiceClassId |
GUID correspondente para a classe serviço. |
lpVersion |
Número versão referências de instância de serviço específico. |
lpszComment |
Seqüência de caracteres comentar opcional fornecido pelo serviço instância. |
dwNameSpace |
Espaço nome em que a instância serviço foi encontrada. |
lpNSProviderId |
Identifica o nome específico-provedor espaço que forneceu este resultado consulta. |
lpszContext |
Especifica o apontar contexto em um hierárquico Nome espaço no qual o serviço está localizado. |
dwNumberOfProtocols |
Indefinido para resultados. |
lpafpProtocols |
Indefinidos para os resultados, todas as informações necessárias protocolo está na CSADDR_INFO estruturas. |
lpszQueryString |
Quando dwControlFlags Inclui LUP_RETURN_QUERY_STRING, esse membro retorna o não analisado restante a lpszServiceInstanceName especificado no original consulta. De exemplo, em um nome que identifica os serviços por hierárquico espaço nomes que especificar um nome do host e um caminho do arquivo dentro desse hospedar, o endereço retornado pode ser o endereço hospedar e o não analisado restante pode ser a caminho do arquivo. Se a pasta lpszServiceInstanceName é totalmente analisado e LUP_RETURN_QUERY_STRING é usado, esse membro é NULL ou aponta para um zero-length string. |
dwNumberOfCsAddrs |
Indica o número de elementos de matriz de CSADDR_INFO estruturas. |
lpcsaBuffer |
Ponteiro para uma matriz de CSADDR_INFO estruturas, com um completo endereço transporte contido em cada elemento. |
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 |