Dela via


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.

 

PNRP och BLOB-

PNRP och WSALookupServiceEnd

PNRP och WSALookupServiceNästa

PNRP och WSANSPIoctl

PNRP och WSAQUERYSET

PNRPCLOUDINFO

PNRPINFO

PNRP NSP-felkoder