PNRP und WSANSPIoctl
PNRP verwendet die WSANSPIoctl-Funktion, um Benachrichtigungen zu Änderungen an Folgenden zu erhalten:
- Liste der Netzwerkclouds
- Verfügbarkeit der Ergebnisse einer Namensauflösungsanforderung
Der erste Aufruf von WSALookupServiceBegin definiert den Informationstyp, über den ein Client benachrichtigt wird. Ein Client kann mit einer Windows Nachricht, einer Abschlussroutine, einem Handle für ein WSAEVENT-Objekt oder einem Port benachrichtigt werden. Weitere Informationen zu Optionen und zum Festlegen des lpCompletion-Parameters finden Sie unter WSANSPIoctl.
Um nach einem Aufruf von WSALookupServiceNextweiterhin Benachrichtigungen zu erhalten, muss eine Anwendung WSANSPIoctl erneut aufrufen.
Die WSALookupServiceNext-Funktion blockiert auch dann, wenn WSANSPIoctl aufgerufen wird. Vor dem Aufrufen von WSALookupServiceNext muss eine Anwendung warten, bis sie eine Benachrichtigung empfängt– wenn die Blockierung ein Problem ist.
Beim Aufrufen dieser Funktion müssen die Parameter die folgenden Werte aufweisen:
-
Wverweis
-
Gibt das Handle an, das WSALookupServiceBegin zurückgibt.
-
dwControlCode
-
Muss SIO _ NSP _ NOTIFY _ CHANGE sein.
-
lpvInBuffer
-
Muss NULL sein.
-
cbInBuffer
-
Muss 0 (null) sein.
-
lpvOutBuffer
-
Muss NULL sein.
-
cbOutBuffer
-
Muss 0 (null) sein.
-
lpcbBytesReturned
-
Muss NULL sein.
-
lpCompletion
-
Gibt entweder NULL oder einen Zeiger auf eine WSACOMPLETION-Struktur an.
Nachdem eine Benachrichtigung empfangen wurde, rufen Sie WSALookupServiceNext einmal auf, um die Ergebnisse abzurufen.
Um eine Suche zu beenden, rufen Sie WSALookupServiceEnd auf.
Auflösungsbenachrichtigungen
Ein Client kann jederzeit benachrichtigt werden, wenn ein Namensauflösungseintrag hinzugefügt wird. Der Client ruft dann WSALookupServiceNext auf, um die Auflösungsdaten abzurufen.
Wenn der Client diese Technik nicht verwendet, kann ein Aufruf von WSALookupServiceNext blockiert werden, bis das angegebene Timeout auftritt.
Cloudlistenbenachrichtigungen
Ein Client kann bei jeder Änderung an einer Gruppe von Clouds benachrichtigt werden.
Die WSALookupServiceNext-Funktion gibt WSA _ E NO _ _ MORE als Set-Trennzeichen zurück. Die Clientanwendung muss vorhandene Clouds aufzählen, bis diese Nachricht zurückgegeben wird, und dann ein Benachrichtigungsschema verwenden, um nachfolgende Änderungen abzurufen, sobald sie auftreten. Eine Clientanwendung kann auch WSALookupServiceNext aufrufen, aber der Aufruf wird blockiert, bis eine Änderung erfolgt.
Die WSALookupServiceNext-Funktion gibt eine Cloud in einer WSAQUERYSET-Struktur zurück. Eines der folgenden Flags wird im dwOutputFlags-Member zurückgegeben.
| Wert | Beschreibung |
|---|---|
| ERGEBNIS _ _ HINZUGEFÜGT | Die zurückgegebene Cloud wird hinzugefügt. |
| ERGEBNIS _ _ GEÄNDERT | Die zurückgegebene Cloud wird geändert. |
| ERGEBNIS _ WIRD _ GELÖSCHT | Die zurückgegebene Cloud wird gelöscht und ist ungültig. |
Zugehörige Themen
-
WSALookupServiceBegin
-
WSALookupServiceEnd
-
WSAQUERYSET