Consulta de serviço

Uma consulta de serviço de nome envolve uma série de chamadas: NSPLookupServiceBegin, seguida por uma ou mais chamadas para NSPLookupServiceNext e terminando com uma chamada para NSPLookupServiceEnd. NSPLookupServiceBegin usa uma estrutura WSAQUERYSET como entrada para definir os parâmetros de consulta junto com um conjunto de sinalizadores para fornecer controle adicional sobre a operação de pesquisa. Ele retorna um identificador de consulta que é usado nas chamadas subsequentes para NSPLookupServiceNext e NSPLookupServiceEnd.

O cliente SPI do namespace invoca NSPLookupServiceNext para obter resultados de consulta, com resultados fornecidos em um buffer WSAQUERYSET fornecido pelo cliente. O cliente continua a chamar NSPLookupServiceNext até que o código de erro WSA_E_NO_MORE seja retornado indicando que todos os resultados foram recuperados. Em seguida, a pesquisa é encerrada por uma chamada para NSPLookupServiceEnd. A função NSPLookupServiceEnd também pode ser usada para cancelar um NSPLookupServiceNext atualmente pendente quando chamado de outro thread.

Em Windows Soquetes 2, códigos de erro conflitantes são definidos para WSAENOMORE (10102) e WSA_E_NO_MORE (10110). O código de erro WSAENOMORE será removido em uma versão futura e somente WSA_E_NO_MORE permanecerá. Os provedores de namespace devem alternar para usar o código de erro WSA_E_NO_MORE o mais rápido possível para manter a compatibilidade com o intervalo mais amplo possível de aplicativos.