Namespace-Dienstanbieter

Ein Namespaceanbieter implementiert eine Schnittstellenzuordnung zwischen der Winsock-Namespace-SPI und der nativen programmgesteuerten Schnittstelle eines vorhandenen Namensdiensts wie DNS, X.500 oder NetWare-Verzeichnisdienste (NDS). Ein Namespaceanbieter unterstützt zwar genau einen Namespace, es ist jedoch möglich, dass mehrere Anbieter für einen bestimmten Namespace installiert werden. Es ist auch möglich, dass eine einzelne DLL eine Instanz von mehreren Namespaceanbietern erstellt. Wenn Namespaceanbieter installiert werden, wird ein Katalog von WSANAMESPACE _ INFO-Strukturen verwaltet. Eine Anwendung kann WSAEnumNameSpaceProviders verwenden, um zu erfahren, welche Namespaces auf einem Computer unterstützt werden.

Unter Windows Vista und höher werden eine erweiterte WSANAMESPACE _ INFOEX-Struktur und eine WSAEnumNameSpaceProvidersEx-Funktion bereitgestellt.

Auf 64-Bit-Plattformen werden ähnliche WSCEnumNameSpaceProviders32- und WSCEnumNameSpaceProvidersEx32-Funktionen bereitgestellt, um den 32-Bit-Katalog zu aufzählen.

Ausführliche Informationen finden Sie unter Anforderungen des Winsock-Namespace-Dienstanbieters.

Legacy-GetXbyy-Dienstanbieter

Windows Sockets 2 unterstützt vollständig die TCP/IP-spezifischen Namensauflösungsmöglichkeiten in Windows Sockets Version 1.1. Hierzu wird der Satz von GetXbyY-Funktionen in die SPI-Funktion ein- und aus dem Spi-Bereich endiert. Die Behandlung dieses Funktionsumfangs ist jedoch etwas anders als die restlichen SPI-Funktionen. Den in der SPI angezeigten GetXbyY-Funktionen wird GETXBYYSP vorgefertigt, und _ sie werden in der folgenden Tabelle zusammengefasst.

Stilfunktionen in Berkeley

SPI-Funktionsname BESCHREIBUNG
GETXBYYSP _ gethostbyaddr Stellt eine Hostent-Struktur für die angegebene Hostadresse zur
GETXBYYSP _ gethostbyname Stellt eine hostente -Struktur für den angegebenen Hostnamen zur
GETXBYYSP _ getprotobyname Stellt eine protoent-Struktur für den angegebenen Protokollnamen zur
GETXBYYSP _ getprotobynumber Stellt eine protoent-Struktur für die angegebene Protokollnummer zur
GETXBYYSP _ getservbyname Stellt eine Servent-Struktur für den angegebenen Dienst nam.e
GETXBYYSP _ getservbyport Stellt eine servent-Struktur für den Dienst am angegebenen Port zur Verfügung.
GETXBYYSP _ gethostname Gibt den Standardhostnamen für den lokalen Computer zurück.

Asynchrone Stilfunktionen

SPI-Funktionsname BESCHREIBUNG
GETXBYYSP _ WSAAsyncGetHostByAddr Stellt eine Hostent-Struktur für die angegebene Hostadresse zur
GETXBYYSP _ WSAAsyncGetHostByName Stellt eine hostente -Struktur für den angegebenen Hostnamen zur
GETXBYYSP _ WSAAsyncGetProtoByName Stellt eine protoent-Struktur für den angegebenen Protokollnamen zur
GETXBYYSP _ WSAAsyncGetProtoByNumber Stellt eine protoent-Struktur für die angegebene Protokollnummer zur
GETXBYYSP _ WSAAsyncGetServByName Stellt eine Servent-Struktur für den angegebenen Dienstnamen zur Verfügung.
GETXBYYSP _ WSAAsyncGetServByPort Stellt eine servent-Struktur für den Dienst am angegebenen Port zur Verfügung.
GETXBYYSP _ WSACancelAsyncRequest Bricht einen asynchronen GetXbyY-Vorgang ab.

Die Syntax und Semantik dieser GetXbyY-Funktionen im SPI sind identisch mit den in der API-Spezifikation dokumentierten Funktionen und werden daher hier nicht wiederholt.

Die Windows Sockets 2-DLL ermöglicht genau einem Dienstanbieter, diese Dienste anzubieten. Daher müssen keine Zeiger auf diese Funktionen in die Prozedurtabelle aufgenommen werden, die beim Start von Dienstanbietern empfangen wird. In Windows-Umgebungen wird der Pfad zur DLL, die diese Funktionen implementiert, aus dem Wert abgerufen, der im folgenden Registrierungspfad gefunden wird. Dieser Registrierungseintrag ist standardmäßig nicht vorhanden:

HKEY _ LOCAL _ MACHINE \ System \ CurrentControlSet \ Services \ WinSock2 \ Parameters \ GetXByYLibraryPath

Built-In Standard-GetXbyy-Dienstanbieter

Ein Standardmäßiger GetXbyY-Dienstanbieter ist in die Windows Sockets 2-Laufzeitkomponenten integriert. Dieser Standardanbieter implementiert alle oben genannten Funktionen, daher ist es nicht erforderlich, dass diese Funktionen von einem Namespaceanbieter implementiert werden. Ein Namespaceanbieter kann jedoch eine oder alle dieser Funktionen bereitstellen (und somit die Standardwerte überschreiben), indem er einfach die Zeichenfolge speichert, die der Pfad zu der DLL ist, die diese Funktionen im angegebenen Registrierungsschlüssel implementiert. Alle GetXbyY-Funktionen, die nicht von der benannten Anbieter-DLL exportiert werden, werden über die integrierten Standardwerte bereitgestellt. Beachten Sie jedoch, dass ein Anbieter alle asynchronen Funktionen bereitstellen sollte, damit der Abbrichtvorgang ordnungsgemäß funktioniert, wenn er sich dafür auswählt, eine der asynchronen Versionen der GetXbyY-Funktionen zur Verfügung zu stellen.

Die aktuelle Implementierung des Standardmäßigen GetXbyY-Dienstanbieters befindet sich im Wsock32.dll. Je nachdem, wie die TCP/IP-Einstellungen über Systemsteuerung eingerichtet wurden, erfolgt die Namensauflösung mithilfe von DNS- oder lokalen Hostdateien. Wenn DNS verwendet wird, verwendet der Standardmäßige GetXbyY-Dienstanbieter standardmäßige Windows Sockets 1.1-API-Aufrufe für die Kommunikation mit dem DNS-Server. Diese Transaktionen erfolgen mithilfe des TCP/IP-Stapels, der als TCP/IP-Standardstapel konfiguriert ist. Zwei Sonderfälle sind jedoch besonders erwähnt.

Die Standardimplementierung von GETXBYYSP _ gethostname erhält den lokalen Hostnamen aus der Registrierung. Dies entspricht dem Namen, der "Arbeitsplatz" zugewiesen ist. Die Standardimplementierung von GETXBYYSP _ gethostbyname und GETXBYYSP WSAAsyncGetHostByName vergleicht immer den angegebenen Hostnamen mit dem lokalen _ Hostnamen. Wenn sie übereinstimmen, verwendet die Standardimplementierung eine private Schnittstelle, um den Microsoft TCP/IP-Stapel zu prüfen, um seine lokale IP-Adresse zu finden. Um vollständig unabhängig vom Microsoft TCP/IP-Stapel zu sein, muss ein Namespaceanbieter daher sowohl GETXBYYSP gethostbyname als auch _ GETXBYYSP _ WSAAsyncGetHostByName implementieren.