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 einem Satz von Flags zu definieren, um zusätzliche Kontrolle über den Suchvorgang zu erhalten. Sie gibt ein Abfragehandle zurück, das in den nachfolgenden Aufrufen von NSPLookupServiceNext und NSPLookupServiceEnd verwendet wird.

Der SPI-Namespaceclient ruft NSPLookupServiceNext auf, um Abfrageergebnisse mit Ergebnissen abzurufen, die 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 NSPLookupServiceEnd-Funktion kann auch verwendet werden, um eine derzeit ausstehende NSPLookupServiceNext-Funktion abzubrechen, wenn sie von einem anderen Thread aufgerufen wird.

In Windows Sockets 2 werden in Konflikt stehende 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 verbleiben. Namespaceanbieter sollten so schnell wie möglich zur Verwendung des WSA_E_NO_MORE-Fehlercodes wechseln, um die Kompatibilität mit einem möglichst breiten Anwendungsspektrum zu gewährleisten.