Initialisation d’un fournisseur de services SAN
Le commutateur Sockets Windows initialise un fournisseur de services SAN comme décrit dans la figure suivante.
Une fois que Windows a chargé la DLL de basculement des sockets Windows dans le processus d’une application, la séquence d’événements suivante se produit.
Pour initialiser un fournisseur de services SAN
Le commutateur détecte et charge le fournisseur TCP/IP, puis interroge la liste des fournisseurs de services SAN dans le Registre pour détecter tous ces fournisseurs, comme décrit dans Installation d’un fournisseur de services SAN. Le commutateur appelle la fonction WSPStartupEx de chaque fournisseur détecté pour lancer l’utilisation de ce fournisseur.
Dans l’appel WSPStartupEx , le commutateur passe un pointeur vers une structure WSAPROTOCOL_INFOW qui contient les informations de protocole du fournisseur TCP/IP. Le protocole du fournisseur TCP/IP indique au fournisseur de services SAN qu’il a été initialisé par le commutateur plutôt que par d’autres fournisseurs de services en couche ou l’interface des sockets Windows. Le commutateur transmet les informations de protocole du fournisseur TCP/IP au lieu des informations de transport du fournisseur de services SAN, comme suggéré dans la section Spi (Windows Sockets Service Provider Interface) de la documentation Microsoft Windows SDK.
Étant donné qu’un fournisseur de services SAN peut détecter qu’il est initialisé par le commutateur, il peut exposer l’ensemble approprié de fonctions de point d’entrée au commutateur. Si le fournisseur de services SAN est initialisé directement par une application, il peut exposer un autre ensemble de fonctions de point d’entrée à cette application. Si un fournisseur de services SAN est en couche sous le commutateur, ce fournisseur doit respecter les extensions et le comportement décrits dans cette section.
Le pilote proxy d’un fournisseur de services SAN obtient la liste des adresses IP affectées à chaque carte réseau sous son contrôle, comme décrit dans Inscription pour les notifications de carte réseau SAN. Le fournisseur de services SAN utilise une interface privée pour récupérer cette liste à partir de son pilote proxy. Le commutateur appelle la fonction WSPSocket d’un fournisseur de services SAN pour créer un socket. Le commutateur utilise ce socket pour récupérer la liste complète des adresses IP attribuées aux cartes réseau sous contrôle du pilote proxy du fournisseur de services SAN. Le commutateur récupère cette liste comme décrit dans Réception et traduction d’adresses de carte réseau. Sur la base de cette liste et des listes d’autres fournisseurs de services SAN, le commutateur génère une table qui mappe les sous-réseaux IP locaux aux fournisseurs de services SAN.
Le commutateur Sockets Windows doit récupérer des pointeurs vers les fonctions de point d’entrée du fournisseur de services SAN qui étendent l’interface spi (Windows Sockets Service Provider Interface) pour une utilisation avec des SAN. Pour récupérer chacune de ces fonctions étendues, le commutateur Windows Sockets appelle la fonction WSPIoctl d’un fournisseur de services SAN et transmet le code de commande SIO_GET_EXTENSION_FUNCTION_POINTER avec le GUID dont la valeur identifie l’une de ces fonctions étendues.
Pour obtenir une description complète de ces fonctions, consultez Extensions SPI des sockets Windows pour les SAN.
Le commutateur peut créer des threads pour prendre en charge les sockets d’écoute ainsi que les demandes de connexion non bloquantes, comme décrit dans Configuration d’une connexion SAN.