Dienstabfrage

Eine Namensdienstabfrage umfasst eine Reihe von Aufrufen: NSPLookupServiceBegin, gefolgt von einem oder mehreren Aufrufen von NSPLookupServiceNext und endet mit einem Aufruf von NSPLookupServiceEnd. NSPLookupServiceBegin verwendet eine WSAQUERYSET-Struktur als Eingabe, um die Abfrageparameter zusammen mit einer Reihe von Flags zu definieren, um zusätzliche Kontrolle über den Suchvorgang bereitzustellen. Es gibt ein Abfragehandle zurück, das in den nachfolgenden Aufrufen von NSPLookupServiceNext und NSPLookupServiceEnd verwendet wird.

Der Namespace-SPI-Client ruft NSPLookupServiceNext auf, um Abfrageergebnisse abzurufen, wobei Ergebnisse in einem vom Client bereitgestellten WSAQUERYSET-Puffer bereitgestellt werden. Der Client ruft weiterhin NSPLookupServiceNext auf, bis der Fehlercode WSA_E_NO_MORE zurückgegeben wird, der angibt, dass alle Ergebnisse abgerufen wurden. Die Suche wird dann durch einen Aufruf von NSPLookupServiceEnd beendet. Die Funktion NSPLookupServiceEnd kann auch verwendet werden, um eine aktuell ausstehende NSPLookupServiceNext abzubrechen, wenn sie von einem anderen Thread aufgerufen wird.

In Windows Sockets 2 werden konfliktierende Fehlercodes für WSAENOMORE (10102) und WSA_E_NO_MORE (10110) definiert. Der Fehlercode WSAENOMORE wird in einer zukünftigen Version entfernt, und nur WSA_E_NO_MORE bleiben erhalten. Namespaceanbieter sollten so schnell wie möglich zur Verwendung des WSA_E_NO_MORE-Fehlercodes wechseln, um die Kompatibilität mit der größtmöglichen Palette von Anwendungen aufrechtzuerhalten.