Função de retorno de chamada LPNSPLOOKUPSERVICENEXT (ws2spi.h)
A função
O provedor passará uma estrutura de WSAQUERYSET
Sintaxe
LPNSPLOOKUPSERVICENEXT Lpnsplookupservicenext;
INT Lpnsplookupservicenext(
[in] HANDLE hLookup,
[in] DWORD dwControlFlags,
[in, out] LPDWORD lpdwBufferLength,
[out] LPWSAQUERYSETW lpqsResults
)
{...}
Parâmetros
[in] hLookup
Um identificador retornado da chamada anterior para WSALookupServiceBegin .
[in] dwControlFlags
Os sinalizadores usados para controlar a próxima operação. Atualmente, apenas LUP_FLUSHPREVIOUS é definido como um meio de lidar com um conjunto de resultados muito grande. Se um aplicativo não puder fornecer um buffer grande o suficiente, a configuração LUP_FLUSHPREVIOUS instrui o provedor a descartar o último conjunto de resultados, que era muito grande, e mover para o próximo conjunto para essa chamada.
[in, out] lpdwBufferLength
O tamanho, em bytes, na entrada, contido no buffer apontado por lpqsResults. Na saída, se a função falhar e o erro for WSAEFAULT, ele conterá o tamanho mínimo, em bytes a serem passados para o lpqsResults recuperar o registro.
[out] lpqsResults
Um ponteiro para um bloco de memória que conterá, no retorno, um conjunto de resultados em uma estrutura de WSAQUERYSET
Valor de retorno
A função deverá retornar NO_ERROR (zero) se a rotina for bem-sucedida. Ele deverá retornar SOCKET_ERROR (–1) se a rotina falhar e precisar definir o código de erro apropriado usando WSASetLastError.
Observações
Os dwControlFlags
Os dwControlFlagsLUP_FLUSHPREVIOUS e LUP_RES_SERVICE são exceções à regra de restrições combinadas (porque são sinalizadores de comportamento em vez de sinalizadores de "restrição"). Se um dos sinalizadores for usado em NSPLookupServiceNext, eles terão seu efeito definido independentemente da configuração dos mesmos sinalizadores em NSPLookupServiceBegin.
Por exemplo, se LUP_RETURN_VERSION for especificado em NSPLookupServiceBegin, o provedor de serviços recuperará registros, incluindo a versão. Se LUP_RETURN_VERSION não for especificado em NSPLookupServiceNext, as informações retornadas não incluirão a versão, mesmo que ela estivesse disponível. Nenhum erro é gerado.
Além disso, por exemplo, se LUP_RETURN_BLOB não for especificado em NSPLookupServiceBegin, mas for especificado em NSPLookupServiceNext, as informações retornadas não incluirão os dados privados. Nenhum erro é gerado.
Resultados da consulta
A tabela a seguir listaNome do membro WSAQUERYSET | Interpretação de resultado |
---|---|
**dwSize** | Será definido como sizeof(WSAQUERYSET). Isso é usado como um mecanismo de controle de versão. |
**dwOutputFlags** | O sinalizador **RESULT_IS_ALIAS** indica que esse é um resultado de alias. |
**lpszServiceInstanceName** | Faz referência à cadeia de caracteres que contém o nome do serviço. |
**lpServiceClassId** | GUID correspondente à classe de serviço. |
**lpVersion** | Faz referência ao número de versão da instância de serviço específica. |
**lpszComment** | Opcional. Cadeia de caracteres de comentário fornecida pela instância de serviço. |
**dwNameSpace** | Namespace no qual a instância de serviço foi encontrada. |
**lpNSProviderId** | Identifica o provedor de namespace específico que forneceu esse resultado de consulta. |
**lpszContext** | Especifica o ponto de contexto em um namespace hierárquico no qual o serviço está localizado. |
**dwNumberOfProtocols** | Indefinido para resultados. |
**lpafpProtocols** | Indefinido para resultados, todas as informações de protocolo necessárias estão nas estruturas de CSADDR_INFO. |
**lpszQueryString** | Quando dwControlFlags inclui **LUP_RETURN_QUERY_STRING**, esse membro retorna o restante não preparado do **lpszServiceInstanceName** especificado na consulta original. Por exemplo, em um namespace que identifica serviços por nomes hierárquicos que especificam um nome de host e um caminho de arquivo dentro desse host, o endereço retornado pode ser o endereço do host e o restante não preparado pode ser o caminho do arquivo. Se o **lpszServiceInstanceName** for totalmente analisado e **LUP_RETURN_QUERY_STRING** for usado, esse membro será nulo ou apontará para uma cadeia de caracteres de comprimento zero. |
**dwNumberOfCsAddrs** | Indica o número de elementos na matriz de estruturas CSADDR_INFO. |
**lpcsaBuffer** | Um ponteiro para uma matriz de estruturas de CSADDR_INFO, com um endereço de transporte completo contido em cada elemento. |
**lpBlob** | Opcional. Um ponteiro para uma entidade específica do provedor. |
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows 2000 Professional [somente aplicativos da área de trabalho] |
servidor com suporte mínimo | Windows 2000 Server [somente aplicativos da área de trabalho] |
da Plataforma de Destino |
Windows |
cabeçalho | ws2spi.h |