Installieren eines SAN-Dienstanbieters
Ein SAN-Dienstanbieter wird in der Regel als Windows Sockets-Basisdienstanbieter installiert, der eine Verbindung mit dem Windows Sockets-Switch herstellt. Obwohl ein SAN-Dienstanbieter stattdessen für die direkte Verwendung durch eine Anwendung installiert werden kann, unterstützt die Windows Sockets Direct-Technologie die Verwendung eines SAN-Dienstanbieters auf diese Weise nicht. Ein SAN-Dienstanbieter, der für die direkte Verwendung durch eine Anwendung installiert ist, exportiert seine systemeigenen Adressfamilien und Protokolleigenschaften anstelle der Merkmale des TCP/IP-Protokolls.
Ein SAN-Dienstanbieter, der anwendungen indirekt über den Windows Sockets-Switch verfügbar gemacht wird, muss das flag PFL_HIDDEN im dwProviderFlags-Member der WSAPROTOCOL_INFOW struktur des SAN-Dienstanbieters festlegen. Um den SAN-Dienstanbieter auf dem Betriebssystem zu installieren, übergibt der Installationsmechanismus des SAN-Dienstanbieters diese Struktur in einem Aufruf der WSCInstallProvider-Funktion . Der Installationsmechanismus des SAN-Dienstanbieters kann z. B. ein Setupprogramm oder eine Funktion sein, die vom SAN-Dienstanbieter exportiert und von einer INF-Dateidirektive aufgerufen wird.
Der Installationsmechanismus des SAN-Dienstanbieters muss dem folgenden Schlüssel in der Registrierung einen Wert vom Typ REG_BINARY hinzufügen, bevor der SAN-Dienstanbieter vom Windows Sockets-Switch als Windows Sockets-Basisdienstanbieter erkannt werden kann:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Winsock\
Parameters\TCP on SAN
Dieser Wert enthält die binäre Darstellung des Werts im ProviderId-Member aus der WSAPROTOCOL_INFOW-Struktur. Dieser Wert registriert einen SAN-Dienstanbieter beim Windows Sockets-Switch. Dieses Element enthält die GUID (Globally Unique Identifier), die der Anbieter dem SAN-Dienstanbieter zugewiesen hat.
Der Anbieter kann auch einen eindeutigen Namen zuweisen, der diese GUID darstellt, z. B.:
Markenname des Produkts
Eindeutiger numerischer Wert
Textdarstellung der GUID
So registrieren Sie einen SAN-Dienstanbieter
Der Switch ruft die WSAProviderConfigChange-Funktion auf, um Installations- und Entfernungsereignisse des Windows Sockets-Anbieters zu erkennen.
Nachdem ein neuer Windows Sockets-Dienstanbieter installiert wurde, ruft der Switch die WSCEnumProtocols-Funktion auf, um den Windows Sockets-Katalog und die Liste der SAN-Dienstanbieter in der Registrierung abzufragen, um zu bestimmen, ob der neue Dienstanbieter ein SAN steuert. Weitere Informationen zu WSCEnumProtocols finden Sie im Windows SDK.
Wenn der Switch einen neuen SAN-Dienstanbieter erkennt, initialisiert der Switch diesen Dienstanbieter wie unter Initialisieren eines SAN-Dienstanbieters beschrieben.
Der Switch ruft auch die folgenden Funktionen des neu installierten SAN-Dienstanbieters auf, nachdem der SAN-Dienstanbieter initialisiert wurde, um vorhandene Lauschockets zu verarbeiten, die an die Platzhalter-IP-Adresse (0.0.0.0.0) gebunden sind (die Platzhalter-IP-Adresse impliziert, dass der SAN-Dienstanbieter eingehende Verbindungsanforderungen von allen niCs akzeptieren sollte, die er steuert):
WSPSocket
Erstellt einen SocketWSPBind
Bindet den Socket an die IP-Adresse des Wildcards.WSPListen
Legt den Socket so fest, dass eingehende Verbindungsanforderungen bestätigt und in die Warteschlange gestellt werden, bis er vom Switch akzeptiert wird.Hinweis Ab Windows Vista ist die Wildcard-IP-Adresse 0.0.0.0 nicht verfügbar. Wenn der Registrierungsschlüssel IPAutoconfigurationEnabled ab Windows Vista auf den Wert 0 festgelegt ist, ist die automatische IP-Adresszuweisung deaktiviert, und es wird keine IP-Adresse zugewiesen. In diesem Fall zeigt das Befehlszeilentool ipconfig keine IP-Adresse an. Wenn der Schlüssel auf einen Wert ungleich null festgelegt ist, wird automatisch eine IP-Adresse zugewiesen. Dieser Schlüssel kann sich unter den folgenden Pfaden in der Registrierung befinden:
HKEY_LOCAL_MACHINE\SYSTEM\Current Control Set\Services\Tcpip\Parameters\IPAutoconfigurationEnabled
HKEY_LOCAL_MACHINE\SYSTEM\Current Control Set\Services\Tcpip\Parameters\Interfaces\GUID\IPAutoconfigurationEnabled