PNRP und WSALookupServiceNext
PNRP verwendet die WSALookupServiceNext--Funktion, um Abfragen abzugleichen, die in einem vorherigen Aufruf von WSALookupServiceBeginangegeben sind. Die Ergebnisse der WSALookupServiceNext-Funktion werden durch Einstellungen in der WSAQUERYSET- Struktur bestimmt, die im anfänglichen WSALookupServiceBegin Funktionsaufruf übergeben wird. Diese Funktion wird verwendet, um die folgenden beiden Funktionen auszuführen:
- Auflösen eines Peernamens in eine Liste von Adressen
- Aufzählen von Netzwerkclouds
Mithilfe WSANSPIoctlkann der Nachschlagedienst asynchron verwendet werden. Informationen zur asynchronen Verwendung der Suchdienstfunktionen finden Sie unter PNRP- und WSANSPIoctl-.
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.
Auflösen eines Peernamens in eine Liste von Adressen
Beim Auflösen eines Peernamens in eine Liste von Adressen enthält die LPWSAQUERYSET- Struktur, die im lpqsResults Parameter zurückgegeben wird, die folgenden Werte:
-
dwSize-
-
Gibt die Größe der Struktur zurück.
-
lpszServiceInstanceName
-
Gibt einen Peernamen zurück, wenn LUP_RETURN_NAME, LUP_RETURN_ALLoder NULL- angegeben werden.
-
lpServiceClassID-
-
Gibt SVCID_PNRPNAMEzurück.
-
lpVersion-
-
Gibt NULL-zurück.
-
lpszComment
-
Gibt einen Kommentar zurück, wenn LUP_RETURN_COMMENT, LUP_RETURN_ALLoder NULL- angegeben werden.
-
dwNameSpace-
-
Gibt NS_PNRPNAMEzurück.
-
lpNSProviderID-
-
Gibt NS_PROVIDER_PNRPNAMEzurück.
-
lpszContext
-
Gibt den Cloudnamen zurück, wenn LUP_RETURN_NAME, LUP_RETURN_ALLoder NULL- angegeben werden.
-
dwNumberOfProtocols
-
Gibt Null (0) zurück.
-
lpszQueryString-
-
Gibt NULL-zurück.
-
dwNumberOfCsAddrs
-
Gibt die Anzahl der Einträge im CSADDR_INFO Array zurück, wenn LUP_RETURN_ADDR, LUP_RETURN_ALLoder NULL- angegeben werden. Dieser Wert und die Informationen in lpcsaBuffer sind die wichtigsten Informationsbits, 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_ALLoder NULL- angegeben werden. Dieser Puffer und der Wert in dwNumberOfCsAddrs sind die in dieser Struktur zurückgegebenen wichtigen Informationsbits.
-
dwOutputFlags-
-
Gibt Null (0) zurück.
-
lpBlob
-
Gibt NULL-zurück.
Aufzählen von Netzwerkclouds
Beim Aufzählen von Clouds enthält die LPWSAQUERYSET- Struktur, die im lpqsResults Parameter zurückgegeben wird, die folgenden Werte:
-
dwSize-
-
Gibt die Größe der Struktur zurück.
-
lpszServiceInstanceName
-
Gibt einen Cloudnamen zurück, wenn LUP_RETURN_NAME, LUP_RETURN_ALLoder NULL- angegeben werden.
-
lpServiceClassID-
-
Gibt SVCID_PNRPCLOUDzurück.
-
lpVersion-
-
Gibt NULL-zurück.
-
lpszComment
-
Gibt NULL-zurück.
-
dwNameSpace-
-
Gibt NS_PNRPCLOUDzurück.
-
lpNSProviderID-
-
Gibt NS_PROVIDER_PNRPCLOUDzurü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_ALLoder NULL- angegeben werden.
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 Status einer Cloud. PNRP_CLOUD_STATE gibt die gültigen Werte an.
-
enCloudFlags
-
Gibt an, dass ein Cloudname in einem Netzwerk gültig ist 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 selben 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.
Verwandte Themen