Requête de service
Une requête de service de nom implique une série d’appels : NSPLookupServiceBegin, suivi d’un ou de plusieurs appels à NSPLookupServiceNext et se terminant par un appel à NSPLookupServiceEnd. NSPLookupServiceBegin prend une structure WSAQUERYSET comme entrée afin de définir les paramètres de requête ainsi qu’un ensemble d’indicateurs pour fournir un contrôle supplémentaire sur l’opération de recherche. Elle retourne un handle de requête qui est utilisé dans les appels suivants à NSPLookupServiceNext et NSPLookupServiceEnd.
Le client SPI de l’espace de noms appelle NSPLookupServiceNext pour obtenir les résultats de la requête, avec les résultats fournis dans une mémoire tampon WSAQUERYSET fournie par le client. Le client continue d’appeler NSPLookupServiceNext jusqu’à ce que le code d’erreur WSA_E_NO_MORE soit retourné indiquant que tous les résultats ont été récupérés. La recherche est ensuite terminée par un appel à NSPLookupServiceEnd. La fonction NSPLookupServiceEnd peut également être utilisée pour annuler un NSPLookupServiceNext en attente lorsqu’il est appelé à partir d’un autre thread.
Dans Windows Sockets 2, des codes d’erreur en conflit sont définis pour WSAENOMORE (10102) et WSA_E_NO_MORE (10110). Le code d’erreur WSAENOMORE sera supprimé dans une version ultérieure et seul WSA_E_NO_MORE restera. Les fournisseurs d’espaces de noms doivent passer à l’utilisation du code d’erreur WSA_E_NO_MORE dès que possible pour maintenir la compatibilité avec le plus large éventail possible d’applications.