Share via


WSALookupServiceNext (Windows Sockets)

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Essa função é chamado depois de obter um identificador de um chamar anterior para o WSALookupServiceBegin (Soquetes do Windows) função para recuperar informações de serviço solicitado.

O provedor vai transmitir voltar um WSAQUERYSET (Soquetes do Windows) estrutura in a lpqsResults reserva. O cliente deve continuar a chamar essa função até que ela retorna WSA_E_NOMORE, indicando que todos de WSAQUERYSET (Soquetes do Windows) foi retornado.

Syntax

INT WSALookupServiceNext(
  HANDLE hLookup,
  DWORD dwControlFlags,
  LPDWORD lpdwBufferLength,
  LPWSAQUERYSET lpqsResults
);

Parameters

  • dwControlFlags
    [no] Sinalizadores para o próximo controle operação. O provedor Windows Embedded CE não suporte este sinalizador e irá ignorar ele (silenciosamente).
  • 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 parâmetro para recuperar o registro.

Return Value

Se a operação foi bem-sucedido, o valor de retorno é zero. Se um erro ocorrer, o valor retornado SOCKET_ERROR, e um número de erro específicas pode ser recuperado por chamado WSAGetLastError. A seguinte tabela mostra uma lista dos códigos de erro possível.

Código de erro Descrição

WSA_E_NO_MORE

Não há nenhum dados mais disponível. Em erro conflitante 2.2 sockets do Windows (Winsock) códigos 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á. Para 2.2 sockets do Windows (Winsock), no entanto, aplicativos devem verificar para WSAENOMORE e WSA_E_NO_MORE para a mais larga compatibilidade possível com nome espaço provedores que usam qualquer deles.

WSA_E_CANCELLED

Um chamar para o WSALookupServiceEnd (Soquetes do Windows) função foi feita enquanto este chamar era ainda processamento. A chamada foi cancelada. Os dados na lpqsResults reserva é indefinido. Em sockets do Windows (Winsock) 2.2, 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 permanecerá. Para 2.2 sockets do Windows (Winsock), no entanto, aplicativos devem verificar para WSAECANCELLED e WSA_E_CANCELLED para a mais larga compatibilidade possível com nome espaço provedores que usam qualquer deles.

WSAEFAULT

O lpqsResults reserva era muito pequena para conter um conjunto WSAQUERYSET.

WSAEINVAL

Exigido um ou mais parâmetros foram inválido ou ausente.

WSA_INVALID_HANDLE

O identificador de pesquisa especificado é inválido.

WSANOTINITIALIZED

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

WSANO_DATA

O nome foi encontrado o 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 não ENOUGH memória

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

Remarks

O dwControlFlags parâmetro especificado nessa função e as especificadas no tempo de WSALookupServiceBegin (Soquetes do Windows) são tratados como restrições para a finalidade de combinação. As restrições são combinadas entre aqueles no WSALookupServiceBegin tempo e aqueles em WSALookupServiceNext tempo. Portanto, os sinalizadores no WSALookupServiceNext nunca pode aumentar a quantidade de dados retornados além que foi solicitado no WSALookupServiceBegin, embora não seja um erro ao especificar mais ou menos sinalizadores. Os sinalizadores especificados em um determinado WSALookupServiceNext 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 WSALookupServiceNext, ela terá seu efeito definido regardless of a configuração dos mesmos sinalizadores no WSALookupServiceBegin.

De exemplo, se LUP_RETURN_VERSION for especificada no WSALookupServiceBegin, o provedor serviço recupera registros incluindo a versão. Se LUP_RETURN_VERSION não for especificado no WSALookupServiceNext, as informações retornadas não inclui a versão, mesmo que estava disponível. Nenhum erro será gerado.

Além disso, para exemplo, se LUP_RETURN_BLOB não for especificado no WSALookupServiceBegin Mas é especificado no WSALookupServiceNext, as informações retornadas não inclui o dados particulares. Nenhum erro será gerado.

Os resultados da consulta

A seguinte tabela descreve como os resultados da consulta são representados na WSAQUERYSET (Soquetes do Windows) estrutura.

Nome membro WSAQUERYSET A interpretação de resultados

dwSize

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

dwOuputFlags

O sinalizador RESULT_IS_ALIAS indica que este é um resultado alias.

'L'-> LpszServiceInstanceName

O relacionado seqüência de caracteres contém o nome serviço.

'L'-> LpServiceClassId

O GUID correspondente para a classe serviço.

'L'-> LpVersion

Faz referência o número versão da instância de serviço específico.

'L'-> LpszComment

Um opcional seqüência de caracteres comentar fornecidos por instância de serviço.

Clicaria '-> DwNameSpace

Espaço de nome em que a instância serviço foi encontrada.

'L'-> LpNSProviderId

Identifica o provedor espaço nome específicos que forneceu este resultado consulta.

'L'-> LpszContext

Especifica o apontar contexto em um hierárquico Nome espaço no qual o serviço está localizado.

Clicaria '-> DwNumberOfProtocols

Indefinido para resultados.

lpafpProtocols

Indefinido para resultados. Todas as informações necessárias protocolo consta o CSADDR_INFO estruturas.

'L'-> LpszQueryString

Quando dwControlFlags Inclui LUP_RETURN_QUERY_STRING, esse parâmetro 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, este parâmetro é NULL ou aponta para um zero-length string.

Clicaria '-> DwNumberOfCsAddrs

Indica o número de elementos de matriz de CSADDR_INFO estruturas.

'L'-> LpcsaBuffer

Um ponteiro para uma matriz de CSADDR_INFO estruturas, com um completo endereço transporte contido em cada elemento.

'L'-> LpBlob

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

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

WSALookupServiceBegin (Windows Sockets)
WSALookupServiceEnd (Windows Sockets)
WSAGetLastError
WSAStartup