PNRP és WSALookupServiceBegin
A PNRP a WSALookupServiceBegin függvénnyel indítja el azt a folyamatot, amely lehetővé teszi egy alkalmazás számára a következőket:
- Név feloldása
- Hálózati felhők számbavétele
Az egyik függvényt végrehajtó ügyfelek a WSALookupServiceBegin, WSALookupServiceNextés WSALookupServiceEnd függvényeket használják.
A WSANSPIoctlhasználatával a keresési szolgáltatás aszinkron módon használható. A keresési szolgáltatásfüggvények aszinkron használatáról további információt a PNRP és a WSANSPIoctlcímű témakörben talál.
A társnevek használatának folyamata eltér a felhőktől. Ebben a témakörben minden folyamatot külön-külön ismertetünk.
Név feloldása
Az alkalmazások WSALookupServiceBegin használatával szerzik be egy másik számítógépen regisztrált társszolgáltatás IP-címét, portját és protokollját. A WSALookupServiceBegin függvény a névfeloldási folyamat elindítására, valamint a paraméterek és korlátozások beállítására szolgál. A rendszer egy leírót ad vissza, amelyet WSALookupServiceNext és WSANSPIoctlhívásakor kell használni.
lpqsRestrictions
Társnév feloldásakor az LPWSAQUERYSET struktúrának, amelyet a lpqsRestrictions paraméterhivatkozásoknak tartalmazniuk kell a következő értékeket:
-
dwSize
-
A struktúra méretét adja meg.
-
lpszServiceInstanceName
-
Megadja a feloldandó társ nevét.
-
lpServiceClassID
-
SVCID_PNRPNAMEkell lennie.
-
lpVersion
-
Fenntartott, null kell lennie.
-
lpszComment
-
Fenntartott, null kell lennie.
-
dwNameSpace
-
NS_PNRPNAME vagy NS_ALLkell lennie.
-
lpNSProviderID
-
A NS_PROVIDER_PNRPNAME vagy NULLkell lennie.
-
lpszContext
-
Felhőnévnek, üres sztringnek vagy NULLkell lennie. Ha ez az érték NULL vagy üres sztring, a rendszer az alapértelmezett "Global_" felhőt használja. Ellenkező esetben érvényes felhőnévre kell mutatnia.
-
dwNumberOfProtocols
-
Fenntartott, nullának (0) kell lennie.
-
lpszQueryString
-
Fenntartott, null kell lennie.
-
dwNumberOfCsAddrs
-
Fenntartott, nullának (0) kell lennie.
-
lpcsaBuffer
-
Fenntartott, null kell lennie.
-
dwOutputFlags
-
Fenntartott, nullának (0) kell lennie.
-
lpBlob
-
Egy BLOB- struktúrára mutató mutatónak vagy null kell lennie. Ha NULL, a rendszer az alapértelmezett értékeket használja. Ha be van állítva, lpBlob egy PNRPINFO struktúrára mutat, és a PNRPINFO struktúrában meghatározott paramétereket kell beállítani. További információt a PNRPINFO struktúra alábbi leírásában talál.
A PNRPINFO struktúrája
Ha a LPWSAQUERYSET struktúrájának lpBlob tagja van beállítva, a PNRPINFO struktúrájának következő tagjait kell beállítani:
-
dwSize
-
A struktúra méretét adja meg.
-
lpwszIdentitási
-
Fenntartott, null kell lennie.
-
nMaxResolve
-
Megadja a kért feloldások számát.
-
dwTimeout
-
A válaszok várakozásához kért időtúllépési időtartamot adja meg. Az alapértelmezett érték 30 másodperc. A maximális érték 600 másodperc (10 perc).
-
dwLifetime
-
Fenntartott, nullának (0) kell lennie.
-
enResolveCriteria
-
Az engedélyezett értékek egyikének kell lennie. Az alapértelmezett érték a PNRP_RESOLVE_CRITERIA_NON_CURRENT_PROCESS_PEER_NAME. Az érvényes értékeket a PNRP_RESOLVE_CRITERIAadja meg.
-
dwFlags
-
Nullának (0) vagy PNRPINFO_HINTkell lennie. Az alapértelmezett érték nulla (0).
-
saHint
-
Megadja a tipp IP-címét. A tipp a legközelebbi társnév megkeresésére szolgál. A tipp formátuma egy IPv6-cím. Ha saHint nincs megadva a legközelebbi társnév megkeresésekor, a rendszer ehelyett a helyi számítógép IPv6-címét használja. A rendszer figyelmen kívül hagyja ezt a tagot, ha dwFlags nincs beállítva.
-
enNameState
-
Fenntartott, nullának (0) kell lennie.
dwControlFlags
A PNRP a következő LUP_RETURN_* jelzőket támogatja:
Érték | Leírás |
---|---|
LUP_RETURN_NAME | Nevet és környezetet ad vissza. |
LUP_RETURN_COMMENT | Egy névhez társított megjegyzést ad vissza. |
LUP_RETURN_ADDR | Egy névhez társított címet ad vissza. |
Hálózati felhők számbavétele
lpqsRestrictions
Felhők számbavételekor az LPWSAQUERYSET struktúrának, amelyet a lpqsRestrictions paraméterhivatkozásoknak tartalmazniuk kell a következő értékeket:
-
dwSize
-
A struktúra méretét adja meg.
-
lpszServiceInstanceName
-
Null kell lennie.
-
lpServiceClassID
-
SVCID_PNRPCLOUDkell lennie.
-
lpVersion
-
Fenntartott, null kell lennie.
-
lpszComment
-
Fenntartott, null kell lennie.
-
dwNameSpace
-
NS_PNRPCLOUDkell lennie.
-
lpNSProviderID
-
NS_PROVIDER_PNRPCLOUD vagy NULLkell lennie.
-
lpszContext
-
Fenntartott, null kell lennie.
-
dwNumberOfProtocols
-
Fenntartott, nullának (0) kell lennie.
-
lpszQueryString
-
Fenntartott, null kell lennie.
-
dwNumberOfCsAddrs
-
Fenntartott, nullának (0) kell lennie.
-
lpcsaBuffer
-
Fenntartott, null kell lennie.
-
dwOutputFlags
-
Fenntartott, nullának (0) kell lennie.
-
lpBlob
-
Mutasson egy BLOB struktúrára, amely egy PNRPCLOUDINFO struktúrára mutat. Ha lpBlob NULL , a rendszer az összes felhőt felsorolja.
A PNRPCLOUDINFO struktúrája
Felhők számbavételekor a PNRPCLOUDINFO struktúrájának következő tagjait kell beállítani:
-
dwSize
-
A struktúra méretét adja meg.
-
felhőbeli
-
Egy olyan struktúrára mutat, amely meghatározza a keresési eredmények szűréséhez használható feltételeket. A Cloud.Scope tag lehet PNRP_SCOPE_ANY, PNRP_GLOBAL_SCOPE, PNRP_SITE_LOCAL_SCOPEvagy PNRP_LINK_LOCAL_SCOPE. Ha PNRP_SCOPE_ANY van megadva, a rendszer minden felhőt visszaad. Ellenkező esetben csak az Cloud.Scope megfelelő felhők lesznek visszaadva.
-
enCloudState
-
Fenntartott, nullának (0) kell lennie.
dwControlFlags
A PNRP a következő LUP_RETURN_* jelzőket támogatja:
Érték | Leírás |
---|---|
LUP_RETURN_NAME | Nevet és környezetet ad vissza. |
LUP_RETURN_BLOB | A felhőhöz társított BLOB- adja vissza. |
Kapcsolódó témakörök