PNRP und WSALookupServiceNext
PNRP verwendet die WSALookupServiceNext-Funktion, um Abfragen zu erfüllen, die in einem vorherigen Aufruf von WSALookupServiceBegin angegeben wurden. Die Ergebnisse der WSALookupServiceNext-Funktion werden durch Einstellungen in der WSAQUERYSET-Struktur bestimmt, die im ersten WSALookupServiceBegin-Funktionsaufruf übergeben werden. Diese Funktion wird verwendet, um die folgenden beiden Funktionen auszuführen:
- Auflösen eines Peernamens in eine Liste von Adressen
- Aufzählen von Netzwerk clouds
Mit WSANSPIoctl kannder Suchdienst asynchron verwendet werden. Informationen zur asynchronen Verwendung der Suchdienstfunktionen finden Sie unter PNRP und WSANSPIoctl.
Die WSALookupServiceNext-Funktion blockiert auch dann, wenn WSANSPIoctl aufgerufen wird. Vor dem Aufruf von WSALookupServiceNext muss eine Anwendung warten, bis sie eine Benachrichtigung empfängt– wenn die Blockierung ein Problem ist.
Auflösen eines Peernamens in eine Liste von Adressen
Beim Auflösen eines Peernamens in eine Liste von Adressen enthält die im lpqsResults-Parameter zurückgegebene LPWSAQUERYSET-Struktur die folgenden Werte:
-
dwSize
-
Gibt die Größe der -Struktur zurück.
-
lpszServiceInstanceName
-
Gibt einen Peernamen zurück, wenn LUP _ RETURN _ NAME, LUP _ RETURN _ ALL oder NULL angegeben sind.
-
lpServiceClassID
-
Gibt SVCID _ PNRPNAME zurück.
-
lpVersion
-
Gibt NULL zurück.
-
lpszComment
-
Gibt einen Kommentar zurück– wenn LUP _ RETURN _ COMMENT, LUP _ RETURN _ ALL oder NULL angegeben sind.
-
dwNameSpace
-
Gibt NS _ PNRPNAME zurück.
-
lpNSProviderID
-
Gibt NS _ PROVIDER _ PNRPNAME zurück.
-
lpszContext
-
Gibt den Cloudnamen zurück, wenn LUP _ RETURN _ NAME, LUP RETURN _ _ ALL oder NULL angegeben sind.
-
dwNumberOfProtocols
-
Gibt null (0) zurück.
-
lpszQueryString
-
Gibt NULL zurück.
-
dwNumberOfCsAddrs
-
Gibt die Anzahl der Einträge im ARRAY CSADDR INFO zurück, wenn _ LUP _ RETURN _ ADDR, LUP _ RETURN _ ALL oder NULL angegeben sind. Dieser Wert und die Informationen in lpcsaBuffer sind die wichtigsten Informationen, die in dieser Struktur zurückgegeben werden.
-
lpcsaBuffer
-
Gibt einen Zeiger auf ein Array von CSADDR INFO-Strukturen zurück, wenn _ LUP _ RETURN _ ADDR, LUP RETURN _ _ ALL oder NULL angegeben sind. Dieser Puffer und der Wert in dwNumberOfCsAddrs sind die Schlüsselinformationsbits, die in dieser Struktur zurückgegeben werden.
-
dwOutputFlags
-
Gibt null (0) zurück.
-
lpBlob
-
Gibt NULL zurück.
Aufzählen von Netzwerk clouds
Beim Aufzählen von Clouds enthält die im lpqsResults-Parameter zurückgegebene LPWSAQUERYSET-Struktur die folgenden Werte:
-
dwSize
-
Gibt die Größe der -Struktur zurück.
-
lpszServiceInstanceName
-
Gibt einen Cloudnamen zurück– wenn LUP _ RETURN _ NAME, LUP _ RETURN _ ALL oder NULL angegeben sind.
-
lpServiceClassID
-
Gibt SVCID _ PNRPCLOUD zurück.
-
lpVersion
-
Gibt NULL zurück.
-
lpszComment
-
Gibt NULL zurück.
-
dwNameSpace
-
Gibt NS _ PNRPCLOUD zurück.
-
lpNSProviderID
-
Gibt NS _ PROVIDER _ PNRPCLOUD zurück.
-
lpszContext
-
Gibt NULL zurück.
-
dwNumberOfProtocols
-
Gibt null (0) zurück.
-
lpszQueryString
-
Gibt NULL zurück.
-
dwNumberOfCsAddrs
-
Gibt null (0) zurück.
-
lpcsaBuffer
-
Gibt NULL zurück.
-
dwOutputFlags
-
Gibt null (0) zurück.
-
lpBlob
-
Gibt einen Zeiger auf eine BLOB-Struktur zurück, die auf eine PNRPCLOUDINFO-Struktur verweist– wenn LUP _ RETURN _ BLOB, LUP _ RETURN _ ALL oder NULL angegeben sind.
PNRPCLOUDINFO-Struktur
Beim Aufzählen von Cloudnamen werden die folgenden Werte in der PNRPCLOUDINFO-Struktur zurückgegeben:
-
dwSize
-
Die Größe dieser Struktur.
-
Cloud
-
Der tatsächliche Cloudwert.
-
enCloudState
-
Der aktuelle Zustand einer Cloud. PNRP _ CLOUD _ STATE gibt die gültigen Werte an.
-
enCloudFlags
-
Gibt an, dass ein Cloudname in einem Netzwerk oder nur auf einem aktuellen Computer gültig ist. PNRP _ CLOUD _ FLAGS gibt die gültigen Werte an. Einige Cloudnamen sind auf jedem Computer im gleichen Netzwerk gültig. Andere Cloudnamen sind nur auf einem aktuellen Computer gültig und können nur für einen bestimmten Zeitraum gültig sein.
- Wenn enCloudFlags auf PNRP CLOUD NAME LOCAL festgelegt _ _ _ ist, ist der Name nur lokal gültig.
- Wenn enCloudFlags nicht festgelegt ist, kann der Cloudname auf andere Computer übertragen werden.