PNRP és WSASetService
A PNRP a WSASetService függvénnyel regisztrálja vagy eltávolítja társneveket.
Név regisztrálása
A regisztráció tartalmazza a társnevet és a végpontok készletét, ahol egy szolgáltatással kapcsolatba lehet lépni. A regisztráció egy PNRP-felhőre vonatkozik. A társ regisztrálása után késés van a regisztráció és a regisztrációs adatok más csomópontokra való propagálása között. Ez idő alatt előfordulhat, hogy más csomópontok nem tudják feloldani az újonnan regisztrált társokat.
A szolgáltatásregisztráció nem állandó.
- Ha a társnevet regisztráló ügyfélfolyamat kilép vagy meghívja WSACleanup, akkor a társnév regisztrációja nem történik meg.
- Ha az aktuális folyamat már regisztrál egy adott társnevet ugyanabban a felhőben, a rendszer új regisztrációs értékekkel cseréli le.
Társnév regisztrálásakor a következő paraméterértékeket kell megadni:
- essOperation paraméternek RNRSERVICE_REGISTERértékkel kell rendelkeznie.
- dwControlFlags paraméternek nullának (0) kell lennie.
Társnév regisztrálásakor az LPWSAQUERYSETlpqsRegInfo paraméter által hivatkozott struktúrának a következő értékeket kell tartalmaznia:
-
dwSize
-
A struktúra méretét adja meg.
-
lpszServiceInstanceName
-
Megadja a regisztrálandó társ nevét. Ha a társnév nem biztonságos, akkor az identitás megadása nem kötelező. Ha az identitás NULLvan megadva, a PNRP alapértelmezés szerint a gép helyi identitását használja.
-
lpServiceClassID
-
SVCID_PNRPNAME kell lennie.
-
lpVersion
-
Figyelmen kívül hagyja. Állítsa be a NULL .
-
lpszComment
-
Figyelmen kívül hagyja. A sztringnek azonban 40 karakternél kevesebbnek kell lennie, beleértve a NULL terminátort is.
-
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 "Globális" felhőt használja. Ellenkező esetben érvényes felhőnévre kell mutatnia.
-
dwNumberOfProtocols
-
Figyelmen kívül hagyja. Állítsa nullára (0).
-
lpszQueryString
-
Figyelmen kívül hagyja. Állítsa be a NULL .
-
dwNumberOfCsAddrs
-
A szolgáltatás által regisztrált címek számát adja meg. Az egyetlen névre regisztrálható címek maximális száma 10.
-
lpcsaBuffer
-
Mutasson a regisztrálandó címek listájára.
-
dwOutputFlags
-
Figyelmen kívül hagyja. Állítsa nullára (0).
-
lpBlob
-
Mutasson egy BLOB struktúrára, amely egy PNRPINFO struktúrára mutat. A PNRPINFO struktúrában meghatározott paramétereket kell beállítani. További információ: PNRPINFO struktúraszakasz.
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
-
A társnév PeerIdentityCreatehasználatával létrehozott identitását adja meg. Ha egy társnév nem biztonságos, akkor az identitás megadása nem kötelező. Ha az identitás NULLvan megadva, a PNRP alapértelmezés szerint a számítógép helyi identitását használja.
-
nMaxResolve
-
Figyelmen kívül hagyja. Állítsa nullára (0).
-
dwTimeout
-
Figyelmen kívül hagyja. Állítsa nullára (0).
-
dwLifetime
-
A frissítési műveletek közötti másodpercek számát adja meg.
-
enResolveCriteria
-
Figyelmen kívül hagyja. Állítsa nullára (0).
-
dwFlags
-
Nullának (0) vagy PNRPINFO_HINTkell lennie. Az alapértelmezett érték nulla (0). Ez azt jelenti, hogy a PNRP-azonosító szolgáltatáshelyi része az saHintIP-címével jön létre. Ellenkező esetben a szolgáltatás helye a lpcsaBuffer tag első IPv6-bejegyzésének első IP-címével jön létre.
-
saHint
-
Megadja a tipp IPv6-címét.
-
enNameState
-
Figyelmen kívül hagyja. Állítsa nullára (0).
Társnév regisztrációja törlése
Az alábbi lista azonosítja a társnév regisztrációjának megszüntetésével kapcsolatos fontos információkat.
- Csak a társnevet regisztráló alkalmazások törölhetik a regisztrációt.
- Ha WSACleanup van meghívva, a rendszer automatikusan megszünteti a társnév regisztrációját.
- A PNRP mindig eltávolítja a teljes szolgáltatásnév-regisztrációt. Nem teszi lehetővé az egyes címek eltávolítását.
- Név regisztrációjának törlésekor az essOperation paraméternek RNRSERVICE_DELETEértékkel kell rendelkeznie.
- A PNRP nem támogatja a RNRSERVICE_DEREGISTERértéket.
- A dwControlFlags paraméternek nullának (0) kell lennie.
A név regisztrációjának törlésekor az LPWSAQUERYSET struktúrának, amelyet az lpqsRegInfo paraméterhivatkozásainak tartalmazniuk kell a következő értékeket:
-
dwSize
-
A struktúra méretét adja meg.
-
lpszServiceInstanceName
-
Megadja a regisztrációt megszüntetni kívánt társnevet.
-
lpServiceClassID
-
SVCID_PNRPNAMEkell lennie.
-
lpVersion
-
Figyelmen kívül hagyja. Állítsa be a NULL .
-
lpszComment
-
Figyelmen kívül hagyja. Állítsa be a NULL .
-
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 "Globális" felhőt használja. Ellenkező esetben érvényes felhőnévre kell mutatnia.
-
dwNumberOfProtocols
-
Figyelmen kívül hagyja. Állítsa nullára (0).
-
lpszQueryString
-
Figyelmen kívül hagyja. Állítsa be a NULL .
-
dwNumberOfCsAddrs
-
Figyelmen kívül hagyja. Állítsa be a NULL .
-
lpcsaBuffer
-
Figyelmen kívül hagyja. Állítsa be a NULL .
-
dwOutputFlags
-
Figyelmen kívül hagyja. Állítsa nullára (0).
-
lpBlob
-
Mutasson egy BLOB struktúrára, amely egy PNRPINFO struktúrára mutat. A lpszIdentitáslpBlob struktúrájának tagja azonosítja a társnév regisztrálásához használt identitás nevét. A többi tagnak ugyanazokra az értékekre kell állítania, amelyeket a név regisztrálásakor használnak.
Kapcsolódó témakörök
-
WSASetService