Freigeben über


PNRP und WSALookupServiceBegin

PNRP verwendet die WSALookupServiceBegin-Funktion , um den Prozess zu starten, der es einer Anwendung ermöglicht, Folgendes zu tun:

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

Mithilfe von WSANSPIoctl kann der Nachschlagedienst 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 Prozess der Namensauflösung zu starten und die Parameter und Einschränkungen einzurichten. Es wird ein Handle zurückgegeben, das beim Aufrufen von WSALookupServiceNext und WSANSPIoctl verwendet werden muss.

lpqsRestrictions

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

dwSize

Gibt die Größe dieser Struktur an.

lpszServiceInstanceName

Gibt einen zu auflö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 Standardwolke "Global_" verwendet. Andernfalls muss 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 es 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-Element 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, in dem auf Antworten gewartet werden soll. 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_CRITERIA angegeben.

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ächstgelegenen Peernamen zu finden. Das Format des Hinweises ist eine IPv6-Adresse. Wenn saHint beim Ermitteln 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 null (0) sein.

dwControlFlags

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

Wert BESCHREIBUNG
LUP_RETURN_NAME Gibt einen Namen und 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 Netzwerkwolken

lpqsRestrictions

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

dwSize

Gibt die Größe dieser Struktur an.

lpszServiceInstanceName

Muss NULL sein.

lpServiceClassID

Muss SVCID_PNRPCLOUD werden.

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 verweist. Wenn lpBlobNULL ist, werden alle Clouds aufgelistet.

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 Cloud.Scope-Mitglied 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_RETURN_NAME Gibt einen Namen und Kontext zurück.
LUP_RETURN_BLOB 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