WSALookupServiceNext (Windows Sockets)
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
- hLookup
[no] Manipular retornado do chamar anterior para WSALookupServiceBegin (Soquetes do Windows).
- 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.
- lpqsResults
[out] Ponteiro para uma bloco de memória, que conterá um conjunto de resultados em um WSAQUERYSET (Soquetes do Windows) estrutura no retorno.
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