PNRP und WSANSPIoctl
PNRP verwendet die WSANSPIoctl--Funktion, um Benachrichtigungen über Änderungen an folgendem Zu erhalten:
- Eine Netzwerkcloudliste
- Verfügbarkeit von Ergebnissen einer Namensauflösungsanforderung
Der erste Aufruf von WSALookupServiceBegin definiert den Typ der Informationen, über die ein Client benachrichtigt wird. Ein Client kann mit einer Windows-Nachricht, einer Abschlussroutine, einem Handle zu einem WSAEVENT-Objekt oder einem Port benachrichtigt werden. Weitere Informationen zu Optionen und Festlegen des lpCompletion--Parameters finden Sie unter WSANSPIoctl.
Um nach einem Aufruf von WSALookupServiceNextweiterhin Benachrichtigungen zu empfangen, muss eine Anwendung WSANSPIoctl erneut aufrufen.
Die WSALookupServiceNext Funktionsblöcke auch dann, wenn WSANSPIoctl- aufgerufen wird. Vor dem Aufrufen WSALookupServiceNextmuss eine Anwendung warten, bis sie eine Benachrichtigung empfängt – wenn das Blockieren ein Problem ist.
Beim Aufrufen dieser Funktion müssen die Parameter die folgenden Werte aufweisen:
-
hLookup-
-
Gibt das Handle an, das WSALookupServiceBegin zurückgibt.
-
dwControlCode-
-
Muss SIO_NSP_NOTIFY_CHANGEsein.
-
lpvInBuffer-
-
Muss NULL-sein.
-
cbInBuffer-
-
Muss null (0) sein.
-
lpvOutBuffer-
-
Muss NULL-sein.
-
cbOutBuffer-
-
Muss null (0) 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.
Rufen Sie zum Beenden einer Suche WSALookupServiceEndauf.
Lösungsbenachrichtigungen
Ein Client kann jedes Mal benachrichtigt werden, wenn ein Namensauflösungseintrag hinzugefügt wird. Anschließend ruft der Client 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 jederzeit benachrichtigt werden, wenn eine Änderung an einer Reihe von Clouds erfolgt.
Die WSALookupServiceNext Funktion gibt WSA_E_NO_MORE als Satztrennzeichen zurück. Die Clientanwendung muss vorhandene Clouds aufzählen, bis diese Nachricht zurückgegeben wird, und anschließend ein Benachrichtigungsschema verwenden, um nachfolgende Änderungen abzurufen, sobald sie auftreten. Eine Clientanwendung kann auch WSALookupServiceNext-aufrufen, der Aufruf wird jedoch 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 |
---|---|
RESULT_IS_ADDED | Die zurückgegebene Cloud wird hinzugefügt. |
RESULT_IS_CHANGED | Die zurückgegebene Cloud wird geändert. |
RESULT_IS_DELETED | Die zurückgegebene Cloud wird gelöscht und ist ungültig. |
Verwandte Themen
-
WSALookupServiceBegin
-
WSALookupServiceEnd
-
WSAQUERYSET-