PNRP och WSALookupServiceBegin
PNRP använder funktionen WSALookupServiceBegin för att starta processen som gör att ett program kan göra följande:
Klienter som försöker utföra någon av funktionerna använder WSALookupServiceBegin, WSALookupServiceNextoch WSALookupServiceEnd funktioner.
Genom att använda WSANSPIoctlkan uppslagstjänsten användas asynkront. Information om hur du använder uppslagstjänstfunktionerna asynkront finns i PNRP och WSANSPIoctl.
Processen för att arbeta med peer-namn skiljer sig från att arbeta med moln. Varje process beskrivs separat i det här avsnittet.
Lösa ett namn
Ett program använder WSALookupServiceBegin- för att hämta IP-adressen, porten och protokollet för en peer-tjänst som är registrerad på en annan dator. Funktionen WSALookupServiceBegin används för att starta namnmatchningsprocessen och konfigurera parametrarna och begränsningarna. En referens returneras och måste användas när WSALookupServiceNext och WSANSPIoctl.
lpqsRestrictions
När du löser ett peer-namn måste LPWSAQUERYSET struktur som lpqsRestrictions parameterreferenser innehålla följande värden:
-
dwSize
-
Anger storleken på den här strukturen.
-
lpszServiceInstanceName
-
Anger ett peer-namn som ska matchas.
-
lpServiceClassID
-
Måste vara SVCID_PNRPNAME.
-
lpVersion
-
Reserverad måste vara NULL-.
-
lpszComment
-
Reserverad måste vara NULL-.
-
dwNameSpace
-
Måste vara antingen NS_PNRPNAME eller NS_ALL.
-
lpNSProviderID
-
Måste vara antingen NS_PROVIDER_PNRPNAME eller NULL-.
-
lpszContext
-
Måste vara ett molnnamn, en tom sträng eller NULL-. Om det här värdet är NULL- eller en tom sträng används standardmolnet "Global_". Annars måste det peka på ett giltigt molnnamn.
-
dwNumberOfProtocols
-
Reserverad, måste vara noll (0).
-
lpszQueryString
-
Reserverad måste vara NULL-.
-
dwNumberOfCsAddrs
-
Reserverad, måste vara noll (0).
-
lpcsaBuffer
-
Reserverad måste vara NULL-.
-
dwOutputFlags
-
Reserverad, måste vara noll (0).
-
lpBlob
-
Måste antingen vara en pekare till en BLOB- struktur eller NULL-. Om det är NULL-används standardvärden. Om den anges pekar lpBlob på en PNRPINFO- struktur, och specifika parametrar i PNRPINFO- struktur måste anges. Mer information finns i följande beskrivningar för PNRPINFO-strukturen.
PNRPINFO-struktur
Om lpBlob medlem i LPWSAQUERYSET- struktur anges måste följande medlemmar i PNRPINFO struktur anges:
-
dwSize
-
Anger storleken på den här strukturen.
-
lpwszIdentity
-
Reserverad måste vara NULL-.
-
nMaxResolve
-
Anger det begärda antalet lösningar.
-
dwTimeout
-
Anger den begärda tidsgränsen för att vänta på svar. Standardvärdet är 30 sekunder. Maxvärdet är 600 sekunder (10 minuter).
-
dwLifetime
-
Reserverad, måste vara noll (0).
-
enResolveCriteria
-
Måste vara ett av de tillåtna värdena. Standardvärdet är PNRP_RESOLVE_CRITERIA_NON_CURRENT_PROCESS_PEER_NAME. Giltiga värden anges av PNRP_RESOLVE_CRITERIA.
-
dwFlags
-
Måste vara antingen noll (0) eller PNRPINFO_HINT. Standardvärdet är noll (0).
-
saHint
-
Anger IP-adressen för tipset. Tipset används när du försöker hitta närmaste peer-namn. Formatet för tipset är en IPv6-adress. Om saHint inte anges när du hittar närmaste peer-namn används i stället en IPv6-adress för den lokala datorn. Den här medlemmen ignoreras om dwFlags inte har angetts.
-
enNameState
-
Reserverad, måste vara noll (0).
dwControlFlags
Följande LUP_RETURN_* flaggor stöds av PNRP:
Värde | Beskrivning |
---|---|
LUP_RETURN_NAME | Returnerar ett namn och en kontext. |
LUP_RETURN_COMMENT | Returnerar en kommentar som är associerad med ett namn. |
LUP_RETURN_ADDR | Returnerar en adress som är associerad med ett namn. |
Räkna upp nätverksmoln
lpqsRestrictions
Vid uppräkning av moln måste LPWSAQUERYSET struktur som lpqsRestrictions parameterreferenser måste innehålla följande värden:
-
dwSize
-
Anger storleken på den här strukturen.
-
lpszServiceInstanceName
-
Måste vara NULL-.
-
lpServiceClassID
-
Måste vara SVCID_PNRPCLOUD.
-
lpVersion
-
Reserverad måste vara NULL-.
-
lpszComment
-
Reserverad måste vara NULL-.
-
dwNameSpace
-
Måste vara NS_PNRPCLOUD.
-
lpNSProviderID
-
Måste vara antingen NS_PROVIDER_PNRPCLOUD eller NULL-.
-
lpszContext
-
Reserverad måste vara NULL-.
-
dwNumberOfProtocols
-
Reserverad, måste vara noll (0).
-
lpszQueryString
-
Reserverad måste vara NULL-.
-
dwNumberOfCsAddrs
-
Reserverad, måste vara noll (0).
-
lpcsaBuffer
-
Reserverad måste vara NULL-.
-
dwOutputFlags
-
Reserverad, måste vara noll (0).
-
lpBlob
-
Pekar på en BLOB- struktur som pekar på en PNRPCLOUDINFO- struktur. Om lpBlob- är NULL-räknas alla moln upp.
PNRPCLOUDINFO-struktur
När du räknar upp moln måste följande medlemmar i PNRPCLOUDINFO struktur anges:
-
dwSize
-
Anger storleken på den här strukturen.
-
Cloud
-
Pekar på en struktur som anger kriterier som du kan använda för att filtrera sökresultat. Medlemmen Cloud.Scope kan vara PNRP_SCOPE_ANY, PNRP_GLOBAL_SCOPE, PNRP_SITE_LOCAL_SCOPEeller PNRP_LINK_LOCAL_SCOPE. Om PNRP_SCOPE_ANY anges returneras alla moln. Annars returneras endast moln som matchar Cloud.Scope-.
-
enCloudState
-
Reserverad, måste vara noll (0).
dwControlFlags
Följande LUP_RETURN_* flaggor stöds av PNRP:
Värde | Beskrivning |
---|---|
LUP_RETURN_NAME | Returnerar ett namn och en kontext. |
LUP_RETURN_BLOB | Returnerar BLOB- som är associerade med det här molnet. |
Relaterade ämnen