Freigeben über


PNRP und WSANSPIoctl

PNRP verwendet die WSANSPIoctl-Funktion , um Benachrichtigungen über Änderungen an den folgenden Zu empfangen:

  • Eine Netzwerk-Cloudliste
  • Verfügbarkeit der Ergebnisse 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 Vervollständigungsroutine, 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 WSALookupServiceNext weiterhin 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 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 zu erhalten.

Um eine Suche zu beenden, rufen Sie WSALookupServiceEnd auf.

Auflösungsbenachrichtigungen

Ein Client kann jederzeit benachrichtigt werden, wenn ein Eintrag zur Namensauflösung 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 jederzeit benachrichtigt werden, wenn eine Änderung an einer Gruppe von Clouds erfolgt.

Die WSALookupServiceNext-Funktion gibt WSA_E_NO_MORE als festgelegtes 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 eintritt.

Die WSALookupServiceNext-Funktion gibt eine Cloud in einer WSAQUERYSET-Struktur zurück. Eines der folgenden Flags wird im dwOutputFlags-Element 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