PNRP und WSALookupServiceBegin

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

Clients, die versuchen, eine der Funktionen auszuführen, verwenden die Funktionen WSALookupServiceBegin, WSALookupServiceNext und WSALookupServiceEnd.

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

Der Prozess für die Arbeit 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 von WSALookupServiceNext und WSANSPIoctl verwendet werden.

lpqsRestrictions

Beim Auflösen eines Peernamens muss die LPWSAQUERYSET-Struktur, auf die der lpqsRestrictions-Parameter verweist, die folgenden Werte enthalten:

dwSize

Gibt die Größe dieser Struktur an.

lpszServiceInstanceName

Gibt einen aufzulösenden Peernamen an.

lpServiceClassID

Muss SVCID _ PNRPNAME sein.

lpVersion

Reserviert, muss NULL sein.

lpszComment

Reserviert, muss NULL sein.

dwNameSpace

Muss entweder NS _ PNRPNAME oder NS _ ALL sein.

lpNSProviderID

Muss entweder NS _ PROVIDER _ PNRPNAME oder NULL sein.

lpszContext

Muss ein Cloudname, eine leere Zeichenfolge oder NULL sein. Wenn dieser Wert NULL oder eine leere Zeichenfolge ist, wird die Standardcloud "Global" _ verwendet. Andernfalls muss er auf einen gültigen Cloudnamen verweisen.

dwNumberOfProtocols

Reserviert, muss 0 (null) sein.

lpszQueryString

Reserviert, muss NULL sein.

dwNumberOfCsAddrs

Reserviert, muss 0 (null) sein.

lpcsaBuffer

Reserviert, muss NULL sein.

dwOutputFlags

Reserviert, muss 0 (null) sein.

lpBlob

Muss entweder ein Zeiger auf eine BLOB-Struktur oder NULL sein. Wenn es NULL ist, werden Standardwerte verwendet. Wenn sie festgelegt ist, zeigt 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 der lpBlob-Member der LPWSAQUERYSET-Struktur festgelegt ist, müssen die folgenden Member 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 gewartet werden soll. Der Standardwert ist 30 Sekunden. Der Höchstwert beträgt 600 Sekunden (10 Minuten).

dwLifetime

Reserviert, muss 0 (null) sein.

enResolveCriteria

Muss einer der zulässigen Werte sein. Der Standardwert ist PNRP _ RESOLVE CRITERIA NON CURRENT PROCESS PEER _ _ _ _ _ _ NAME. Gültige Werte werden von PNRP _ RESOLVE _ CRITERIAangegeben.

Dwflags

Muss entweder null (0) oder PNRPINFO _ HINT sein. Der Standardwert ist null (0).

saHint

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

enNameState

Reserviert, muss 0 (null) sein.

dwControlFlags

Die folgenden LUP _ _ * RETURN-Flags werden von PNRP unterstützt:

Wert BESCHREIBUNG
_LUP-RÜCKGABENAME _ Gibt einen Namen und Kontext zurück.
_ _ LUP-RÜCKGABEKOMMENTAR Gibt einen Einem Namen zugeordneten Kommentar zurück.
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, auf die der lpqsRestrictions-Parameter verweist, die folgenden Werte enthalten:

dwSize

Gibt die Größe dieser Struktur an.

lpszServiceInstanceName

Muss NULL sein.

lpServiceClassID

Muss SVCID _ PNRPCLOUD sein.

lpVersion

Reserviert, muss NULL sein.

lpszComment

Reserviert, muss NULL sein.

dwNameSpace

Muss NS _ PNRPCLOUD sein.

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 zeigt. Wenn lpBlob NULL ist, werden alle Clouds aufzählt.

PNRPCLOUDINFO-Struktur

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

dwSize

Gibt die Größe dieser Struktur an.

Cloud

Zeigt auf eine -Struktur, die Kriterien angibt, die Sie zum Filtern von Suchergebnissen verwenden können. Das Cloud.Scope-Element kann PNRP _ SCOPE _ ANY, PNRP GLOBAL _ _ SCOPE, PNRP SITE LOCAL _ _ _ SCOPE oder PNRP LINK LOCAL SCOPE _ _ _ sein. Wenn PNRP _ SCOPE _ ANY angegeben ist, werden alle Clouds zurückgegeben. Andernfalls werden nur Clouds zurückgegeben, die mit Cloud.Scope übereinstimmen.

enCloudState

Reserviert, muss null (0) sein.

dwControlFlags

Die folgenden LUP _ _ * RETURN-Flags werden von PNRP unterstützt:

Wert Beschreibung
_LUP-RÜCKGABENAME _ Gibt einen Namen und Kontext zurück.
_ _ LUP-RÜCKGABEBLOB Gibt das BLOB zurück, das dieser Cloud zugeordnet ist.

PNRP und BLOB

PNRP und WSALookupServiceEnd

PNRP und WSALookupServiceNext

PNRP und WSANSPIoctl

PNRP und WSAQUERYSET

PNRPCLOUDINFO

PNRPINFO

PNRP-NSP-Fehlercodes