Névtérszolgáltatók
A névtérszolgáltató a Winsock névtér SPI és egy meglévő névszolgáltatás natív programozott felülete( például DNS, X.500 vagy NetWare Directory Services ( NDS) közötti interfész-leképezést valósít meg. Bár egy névtérszolgáltató pontosan egy névteret támogat, több szolgáltató is települhet egy adott névtérre. Egy DLL több névtérszolgáltató egy példányát is létrehozhatja. A névtérszolgáltatók telepítésekor a rendszer megőrzi WSANAMESPACE_INFO struktúrák katalógusát. Az alkalmazások WSAEnumNameSpaceProviders használatával deríthetik fel, hogy mely névterek támogatottak a számítógépen.
Windows Vista és újabb rendszereken továbbfejlesztett WSANAMESPACE_INFOEX szerkezet és WSAEnumNameSpaceProvidersEx függvény érhető el.
A 64 bites platformokon hasonló WSCEnumNameSpaceProviders32 és WSCEnumNameSpaceProvidersEx32 függvények érhetők el a 32 bites katalógus számbavételéhez.
Részletes információkért tekintse meg Winsock névtérszolgáltatói követelményeit.
Örökölt GetXbyY-szolgáltatók
A Windows Sockets 2 teljes mértékben támogatja a Windows Sockets 1.1-es verziójában található TCP-/IP-specifikus névfeloldási lehetőségeket. Ezt úgy teszi, hogy beleveszi a GetXbyY függvényeket a SPI-be. Ennek a függvénykészletnek a kezelése azonban némileg eltér a SPI többi függvényétől. Az SPI-ben megjelenő GetXbyY függvények GETXBYYSP_ jelennek meg, és az alábbi táblázatban vannak összefoglalva.
Berkeley Style Functions
SPI függvény neve | Leírás |
---|---|
GETXBYYSP_gethostbyaddr | Egy gazdagép struktúrát biztosít a megadott gazdagépcímhez. |
GETXBYYSP_gethostbyname | Egy gazdagép struktúrát biztosít a megadott gazdagépnévhez. |
GETXBYYSP_getprotobyname | Egy protoent struktúrát biztosít a megadott protokollnévhez. |
GETXBYYSP_getprotobynumber | Egy protoent struktúrát biztosít a megadott protokollszámhoz. |
GETXBYYSP_getservbyname | Egy kiszolgálói struktúrát biztosít a megadott szolgáltatásnévhez |
GETXBYYSP_getservbyport | Egy kiszolgálói struktúrát biztosít a szolgáltatás számára a megadott porton. |
GETXBYYSP_gethostname | A helyi számítógép szokásos gazdagépnevét adja vissza. |
Aszinkron stílusfüggvények
SPI függvény neve | Leírás |
---|---|
GETXBYYSP_WSAAsyncGetHostByAddr | Egy gazdagép struktúrát biztosít a megadott gazdagépcímhez. |
GETXBYYSP_WSAAsyncGetHostByName | Egy gazdagép struktúrát biztosít a megadott gazdagépnévhez. |
GETXBYYSP_WSAAsyncGetProtoByName | Egy protoent struktúrát biztosít a megadott protokollnévhez. |
GETXBYYSP_WSAAsyncGetProtoByNumber | Egy protoent struktúrát biztosít a megadott protokollszámhoz. |
GETXBYYSP_WSAAsyncGetServByName | Egy kiszolgálói struktúrát biztosít a megadott szolgáltatásnévhez. |
GETXBYYSP_WSAAsyncGetServByPort | Egy kiszolgálói struktúrát biztosít a szolgáltatás számára a megadott porton. |
GETXBYYSP_WSACancelAsyncRequest | Megszakít egy aszinkron GetXbyY műveletet. |
Ezen GetXbyY függvények szintaxisa és szemantikája pontosan megegyezik az API-specifikációban dokumentáltakkal, ezért itt nem ismétlődnek.
A Windows Sockets 2 DLL pontosan egy szolgáltató számára teszi lehetővé ezeket a szolgáltatásokat. Ezért az indításkor a szolgáltatóktól kapott eljárástáblában nem szükséges ezekre a függvényekre mutató mutatókat felvenni. Windows-környezetekben a függvényeket megvalósító DLL elérési útja az alábbi beállításjegyzék-elérési útban található értékből lesz lekérve. Ez a beállításjegyzék-bejegyzés alapértelmezés szerint nem létezik:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\WinSock2\Paraméterek\GetXByYLibraryPath
Built-In Alapértelmezett GetXbyY-szolgáltató
Egy alapértelmezett GetXbyY szolgáltató integrálva van a standard Windows Sockets 2 futtatókörnyezeti összetevőkbe. Ez az alapértelmezett szolgáltató a fenti függvények mindegyikét implementálja, ezért nem szükséges, hogy ezeket a függvényeket egy névtérszolgáltató implementálja. A névtérszolgáltató azonban szabadon biztosíthatja ezen függvények bármelyikét vagy mindegyikét (és így felülbírálhatja az alapértelmezett értékeket) a megadott beállításkulcsban ezeket a függvényeket implementáló DLL elérési útját tartalmazó sztringet egyszerűen tárolva. Az elnevezett szolgáltató DLL által nem exportált GetXbyY függvények bármelyike a beépített alapértelmezett értékekkel lesz ellátva. Vegye figyelembe azonban, hogy ha egy szolgáltató úgy dönt, hogy a GetXbyY függvények aszinkron verzióját adja meg, az összes aszinkron függvényt meg kell adnia, hogy a megszakítási művelet megfelelően működjön.
Az alapértelmezett GetXbyY szolgáltató jelenlegi implementációja a Wsock32.dllbelül található. Attól függően, hogy a TCP/IP-beállítások hogyan lettek létrehozva a Vezérlőpulton keresztül, a névfeloldás DNS vagy helyi gazdagépfájlok használatával történik. A DNS használata esetén az alapértelmezett GetXbyY szolgáltató szabványos Windows Sockets 1.1 API-hívásokat használ a DNS-kiszolgálóval való kommunikációhoz. Ezek a tranzakciók az alapértelmezett TCP/IP-veremként konfigurált TCP/IP-verem használatával történnek. Két különleges eset azonban külön említést érdemel.
A GETXBYYSP_gethostname alapértelmezett implementációja beolvasja a helyi gazdagép nevét a beállításjegyzékből. Ez a "Saját számítógép" névnek felel meg. A GETXBYYSP_gethostbyname és GETXBYYSP_WSAAsyncGetHostByName alapértelmezett implementációja mindig összehasonlítja a megadott gazdagépnevet a helyi gazdagép nevével. Ha egyeznek, az alapértelmezett implementáció egy privát felületet használ a Microsoft TCP/IP-verem mintavételéhez a helyi IP-cím felderítése érdekében. Így ahhoz, hogy teljesen független legyen a Microsoft TCP/IP-veremétől, a névtérszolgáltatónak GETXBYYSP_gethostbyname és GETXBYYSP_WSAAsyncGetHostByName is implementálnia kell.