Teilen über


PNRP und WSALookupServiceBegin

PNRP verwendet die WSALookupServiceBegin--Funktion, um den Prozess zu starten, mit dem eine Anwendung folgende Aktionen ausführen kann:

Clients, die versuchen, eine der Funktionen auszuführen, verwenden die funktionen WSALookupServiceBegin, WSALookupServiceNextund WSALookupServiceEnd.

Mithilfe WSANSPIoctlkann der Nachschlagedienst asynchron verwendet werden. Informationen zur asynchronen Verwendung der Suchdienstfunktionen finden Sie unter PNRP- und WSANSPIoctl-.

Der Prozess zum Arbeiten mit Peernamen unterscheidet sich von der Arbeit mit Clouds. Jeder Prozess wird in diesem Thema separat beschrieben.

Auflösen eines Namens

Eine Anwendung verwendet WSALookupServiceBegin, um die IP-Adresse, den Port und das Protokoll für einen Peerdienst abzurufen, der auf einem anderen Computer registriert ist. Die WSALookupServiceBegin-Funktion wird verwendet, um den Namensauflösungsprozess zu starten und die Parameter und Einschränkungen einzurichten. Ein Handle wird zurückgegeben und muss beim Aufrufen WSALookupServiceNext- und WSANSPIoctl-verwendet werden.

lpqsRestrictions

Beim Auflösen eines Peernamens muss die LPWSAQUERYSET-struktur, die die lpqsRestrictions Parameterverweise die folgenden Werte enthalten muss:

dwSize-

Gibt die Größe dieser Struktur an.

lpszServiceInstanceName

Gibt einen Peernamen an, der aufgelöst werden soll.

lpServiceClassID-

Muss SVCID_PNRPNAMEsein.

lpVersion-

Reserviert, muss NULL-sein.

lpszComment

Reserviert, muss NULL-sein.

dwNameSpace-

Muss entweder NS_PNRPNAME oder NS_ALLsein.

lpNSProviderID-

Muss entweder NS_PROVIDER_PNRPNAME oder NULL-sein.

lpszContext

Muss ein Cloudname, eine leere Zeichenfolge oder NULL-sein. Wenn dieser Wert NULL- oder einer leeren Zeichenfolge ist, wird die Standardwolke "Global_" verwendet. Andernfalls muss er auf einen gültigen Cloudnamen verweisen.

dwNumberOfProtocols

Reserviert, muss null (0) sein.

lpszQueryString-

Reserviert, muss NULL-sein.

dwNumberOfCsAddrs

Reserviert, muss null (0) sein.

lpcsaBuffer

Reserviert, muss NULL-sein.

dwOutputFlags-

Reserviert, muss null (0) sein.

lpBlob

Muss entweder ein Zeiger auf eine BLOB--Struktur oder NULL-sein. Wenn es NULL-ist, werden Standardwerte verwendet. Wenn sie festgelegt ist, verweist lpBlob auf eine PNRPINFO- Struktur, und bestimmte Parameter in der PNRPINFO- Struktur müssen festgelegt werden. Weitere Informationen finden Sie in den folgenden Beschreibungen für die PNRPINFO-Struktur.

PNRPINFO-Struktur

Wenn das lpBlob Mitglied der LPWSAQUERYSET- Struktur festgelegt ist, müssen die folgenden Elemente der PNRPINFO--Struktur festgelegt werden:

dwSize-

Gibt die Größe dieser Struktur an.

lpwszIdentity-

Reserviert, muss NULL-sein.

nMaxResolve

Gibt die angeforderte Anzahl von Auflösungen an.

dwTimeout-

Gibt den angeforderten Timeoutzeitraum an, der auf Antworten wartet. Der Standardwert ist 30 Sekunden. Das Maximum beträgt 600 Sekunden (10 Minuten).

dwLifetime

Reserviert, muss null (0) sein.

enResolveCriteria

Muss einer der zulässigen Werte sein. Der Standardwert ist PNRP_RESOLVE_CRITERIA_NON_CURRENT_PROCESS_PEER_NAME. Gültige Werte werden durch PNRP_RESOLVE_CRITERIAangegeben.

dwFlags-

Muss entweder Null (0) oder PNRPINFO_HINTsein. Der Standardwert ist Null (0).

saHint

Gibt die IP-Adresse für den Hinweis an. Der Hinweis wird verwendet, wenn versucht wird, den nächstgelegenen Peernamen zu finden. Das Format des Hinweiss ist eine IPv6-Adresse. Wenn saHint beim Suchen des nächstgelegenen Peernamens nicht angegeben wird, wird stattdessen eine IPv6-Adresse des lokalen Computers verwendet. Dieses Element wird ignoriert, wenn dwFlags- nicht festgelegt ist.

enNameState-

Reserviert, muss null (0) sein.

dwControlFlags

Die folgenden LUP_RETURN_*-Flags werden von PNRP unterstützt:

Wert Beschreibung
LUP_RETURN_NAME Gibt einen Namen und einen Kontext zurück.
LUP_RETURN_COMMENT Gibt einen Kommentar zurück, der einem Namen zugeordnet ist.
LUP_RETURN_ADDR Gibt eine Adresse zurück, die einem Namen zugeordnet ist.

 

Aufzählen von Netzwerkclouds

lpqsRestrictions

Beim Aufzählen von Clouds muss die LPWSAQUERYSET Struktur, die die lpqsRestrictions Parameterverweise die folgenden Werte enthalten:

dwSize-

Gibt die Größe dieser Struktur an.

lpszServiceInstanceName

Muss NULL-sein.

lpServiceClassID-

Muss SVCID_PNRPCLOUDsein.

lpVersion-

Reserviert, muss NULL-sein.

lpszComment

Reserviert, muss NULL-sein.

dwNameSpace-

Muss NS_PNRPCLOUDsein.

lpNSProviderID-

Muss entweder NS_PROVIDER_PNRPCLOUD oder NULL-sein.

lpszContext

Reserviert, muss NULL-sein.

dwNumberOfProtocols

Reserviert, muss null (0) sein.

lpszQueryString-

Reserviert, muss NULL-sein.

dwNumberOfCsAddrs

Reserviert, muss null (0) sein.

lpcsaBuffer

Reserviert, muss NULL-sein.

dwOutputFlags-

Reserviert, muss null (0) sein.

lpBlob

Zeiger auf eine BLOB- Struktur, die auf eine PNRPCLOUDINFO- Struktur verweist. Wenn lpBlob-NULL-ist, werden alle Clouds aufgezählt.

PNRPCLOUDINFO-Struktur

Beim Aufzählen von Clouds müssen die folgenden Elemente der PNRPCLOUDINFO Struktur festgelegt werden:

dwSize-

Gibt die Größe dieser Struktur an.

Cloud-

Verweist auf eine Struktur, die Kriterien angibt, die Sie zum Filtern von Suchergebnissen verwenden können. Das mitglied Cloud.Scope kann PNRP_SCOPE_ANY, PNRP_GLOBAL_SCOPE, PNRP_SITE_LOCAL_SCOPEoder PNRP_LINK_LOCAL_SCOPEsein. Wenn PNRP_SCOPE_ANY angegeben ist, werden alle Clouds zurückgegeben. Andernfalls werden nur Clouds zurückgegeben, die mit dem Cloud.Scope übereinstimmen.

enCloudState-

Reserviert, muss null (0) sein.

dwControlFlags

Die folgenden LUP_RETURN_*-Flags werden von PNRP unterstützt:

Wert Beschreibung
LUP_RETURN_NAME Gibt einen Namen und einen Kontext zurück.
LUP_RETURN_BLOB Gibt den BLOB- zurück, der dieser Cloud zugeordnet ist.

 

PNRP- und BLOB-

PNRP und WSALookupServiceEnd

PNRP- und WSALookupServiceNext-

PNRP- und WSANSPIoctl-

PNRP- und WSAQUERYSET-

PNRPCLOUDINFO

PNRPINFO-

PNRP NSP-Fehlercodes