Freigeben über


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.

 

PNRP- und WSALookupServiceBegin-

PNRP und WSALookupServiceEnd

PNRP- und WSAQUERYSET-

PNRP NSP-Fehlercodes

WSANSPIoctl-

WSALookupServiceBegin

WSALookupServiceEnd

WSAQUERYSET-