Poskytovatelé služeb oboru názvů
Zprostředkovatel oboru názvů implementuje mapování rozhraní mezi rozhraním SPI oboru názvů Winsock a nativním programovým rozhraním existující názvové služby, jako je DNS, X.500 nebo NetWare Directory Services (NDS). Přestože zprostředkovatel oboru názvů podporuje přesně jeden obor názvů, je možné nainstalovat pro daný obor názvů několik zprostředkovatelů. Je také možné, aby jedna knihovna DLL vytvořila instanci více zprostředkovatelů oboru názvů. Při instalaci zprostředkovatelů oboru názvů se udržuje katalog WSANAMESPACE_INFO struktur. Aplikace může WSAEnumNameSpaceProviders zjistit, které obory názvů jsou podporovány v počítači.
Ve Windows Vista a novějších je k dispozici rozšířená struktura WSANAMESPACE_INFOEX a WSAEnumNameSpaceProvidersEx funkce.
Na 64bitových platformách jsou k dispozici podobné WSCEnumNameSpaceProviders32 a WSCEnumNameSpaceProvidersEx32 funkce pro výčet 32bitového katalogu.
Podrobné informace najdete v tématu Požadavky poskytovatele služeb oboru názvů Winsock.
Starší poskytovatelé služeb GetXbyy
Windows Sockets 2 plně podporuje zařízení překladu ip adres specifických pro protokol TCP/IP, která najdete v rozhraní Windows Sockets verze 1.1. Provede to zahrnutím sady funkcí GetXbyY v rozhraní SPI. Léčba této sady funkcí se ale mírně liší od zbytku funkcí SPI. Funkce GetXbyY, které se zobrazují v rozhraní SPI, jsou před GETXBYYSP_ a jsou shrnuty v následující tabulce.
Funkce stylu Berkeley
Název funkce SPI | Popis |
---|---|
GETXBYYSP_gethostbyaddr | Poskytuje hostitelskou strukturu pro zadanou adresu hostitele. |
GETXBYYSP_gethostbyname | Poskytuje hostitelskou strukturu pro zadaný název hostitele. |
GETXBYYSP_getprotobyname | Poskytuje protoent strukturu pro zadaný název protokolu. |
GETXBYYSP_getprotobynumber | Poskytuje protoent strukturu pro zadané číslo protokolu. |
GETXBYYSP_getservbyname | Poskytuje obslužnou strukturu pro zadaný název služby. |
GETXBYYSP_getservbyport | Poskytuje obslužnou strukturu pro službu na zadaném portu. |
GETXBYYSP_gethostname | Vrátí standardní název hostitele místního počítače. |
Asynchronní funkce stylu
Název funkce SPI | Popis |
---|---|
GETXBYYSP_WSAAsyncGetHostByAddr | Poskytuje hostitelskou strukturu pro zadanou adresu hostitele. |
GETXBYYSP_WSAAsyncGetHostByName | Poskytuje hostitelskou strukturu pro zadaný název hostitele. |
GETXBYYSP_WSAAsyncGetProtoByName | Poskytuje protoent strukturu pro zadaný název protokolu. |
GETXBYYSP_WSAAsyncGetProtoByNumber | Poskytuje protoent strukturu pro zadané číslo protokolu. |
GETXBYYSP_WSAAsyncGetServByName | Poskytuje obslužnou strukturu pro zadaný název služby. |
GETXBYYSP_WSAAsyncGetServByPort | Poskytuje obslužnou strukturu pro službu na zadaném portu. |
GETXBYYSP_WSACancelAsyncRequest | Zruší asynchronní operaci GetXbyY. |
Syntaxe a sémantika těchto funkcí GetXbyY v rozhraní SPI jsou naprosto stejné jako funkce popsané ve specifikaci rozhraní API, a proto se zde neopakují.
Knihovna DLL rozhraní Windows Sockets 2 umožňuje přesně jednomu poskytovateli služeb nabízet tyto služby. Proto není nutné zahrnout ukazatele na tyto funkce v tabulce procedur přijaté od poskytovatelů služeb při spuštění. V prostředích Windows je cesta k knihovně DLL, která implementuje tyto funkce, načtena z hodnoty nalezené v následující cestě registru. Tato položka registru ve výchozím nastavení neexistuje:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\WinSock2\Parameters\GetXByYLibraryPath
Built-In výchozího poskytovatele služeb GetXbyY
Výchozí GetXbyY poskytovatel služeb je integrovaný do standardních komponent prostředí Windows Sockets 2 za běhu. Tento výchozí zprostředkovatel implementuje všechny výše uvedené funkce, proto není nutné, aby tyto funkce byly implementovány žádným poskytovatelem oboru názvů. Zprostředkovatel oboru názvů je však zdarma poskytovat všechny tyto funkce (a tím přepsat výchozí hodnoty) jednoduše uložením řetězce, což je cesta k knihovně DLL, která implementuje tyto funkce v uvedeném klíči registru. Všechny GetXbyY funkce, které nejsou exportovány pojmenovanou knihovnou DLL zprostředkovatele, budou dodány prostřednictvím předdefinovaných výchozích hodnot. Upozorňujeme však, že pokud se poskytovatel rozhodne zadat některou z asynchronních verzí funkcí GetXbyY, měl by poskytnout všechny asynchronní funkce, aby operace zrušení fungovala správně.
Aktuální implementace výchozí GetXbyY poskytovatel služeb se nachází v Wsock32.dll. V závislosti na tom, jak bylo nastavení PROTOKOLU TCP/IP vytvořeno prostřednictvím Ovládacích panelů, bude překlad názvů probíhat pomocí DNS nebo místních hostitelských souborů. Při použití DNS používá výchozí GetXbyY poskytovatele služeb standardní volání rozhraní API Windows Sockets 1.1 ke komunikaci se serverem DNS. K těmto transakcím dojde pomocí libovolného zásobníku PROTOKOLU TCP/IP nakonfigurovaného jako výchozího zásobníku TCP/IP. Dvě zvláštní případy však zaslouží zvláštní zmínku.
Výchozí implementace GETXBYYSP_gethostname získá název místního hostitele z registru. Bude odpovídat názvu přiřazeného k mému počítači. Výchozí implementace GETXBYYSP_gethostbyname a GETXBYYSP_WSAAsyncGetHostByName vždy porovnává zadaný název hostitele s názvem místního hostitele. Pokud se shodují, použije výchozí implementace privátní rozhraní k sondování zásobníku Microsoft TCP/IP, aby bylo možné zjistit jeho místní IP adresu. Proto musí poskytovatel oboru názvů implementovat GETXBYYSP_gethostbyname i GETXBYYSP_WSAAsyncGetHostByName, aby byl zcela nezávislý na zásobníku protokolu TCP/IP společnosti Microsoft.