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. |
Verwandte Themen