Partager via


Configuration et installation du transport

Pour qu’un protocole de transport soit accessible via Windows Sockets, il doit être correctement installé sur le système et inscrit auprès de Windows Sockets. Lorsqu’un fournisseur de services de transport est installé en appelant le programme d’installation d’un fournisseur, les informations de configuration doivent être ajoutées à une base de données de configuration pour fournir aux Ws2_32.dll informations requises concernant le fournisseur de services. Le Ws2_32.dll exporte plusieurs fonctions d’installation, WSCInstallProvider et WSCInstallProviderAndChains, pour que le programme d’installation du fournisseur fournisse les informations pertinentes sur le fournisseur de services à installer. Ces informations incluent, par exemple, le nom et le chemin d’accès à la DLL du fournisseur de services et une liste de structures WSAPROTOCOL_INFO que ce fournisseur peut prendre en charge. Le Ws2_32.dll fournit également une fonction, WSCDeinstallProvider, pour que le programme de désinstallation d’un fournisseur supprime toutes les informations pertinentes de la base de données de configuration conservée par le Ws2_32.dll. L’emplacement et le format exacts de ces informations de configuration sont privés à l'Ws2_32.dllet ne peuvent être manipulés que par les fonctions mentionnées ci-dessus.

Sur les plateformes 64 bits, il existe des fonctions similaires qui fonctionnent sur des catalogues 32 bits et 64 bits. Ces fonctions incluent WSCInstallProvider64_32, WSCInstallProviderAndChains64_32et WSCDeinstallProvider32.

L’ordre dans lequel les fournisseurs de services de transport sont initialement installés régit l’ordre dans lequel ils sont énumérés via WSCEnumProtocols et WSCEnumProtocols32 à l’interface du fournisseur de services, ou via WSAEnumProtocols à l’interface de l’application. Plus important encore, cet ordre régit également l’ordre dans lequel les protocoles et fournisseurs de services sont pris en compte lorsqu’un client demande la création d’un socket en fonction de sa famille d’adresses, de son type et de son identificateur de protocole. Windows Sockets 2 inclut une applet appelée Sporder.exe qui permet au catalogue de protocoles installés d’être réorganisé de manière interactive une fois que les protocoles ont déjà été installés. Windows Sockets 2 inclut également une DLL auxiliaire, Sporder.dll, qui exporte une interface procédurale pour réorganiser les protocoles. Cette interface procédurale se compose d’une seule procédure appelée WSCWriteProviderOrder.

Installation de protocoles et de chaînes de protocole en couches

La structure WSAPROTOCOL_INFO fournie avec chaque protocole à installer indique si le protocole est un protocole de base, un protocole en couches ou une chaîne de protocole. La valeur du paramètre ProtocolChain.ChainLen est interprétée comme indiqué dans le tableau suivant.

Valeur Signification
0 Protocole en couches.
1 Protocole de base (ou chaîne avec un seul composant).
>1 Chaîne de protocole.

 

L’installation des chaînes de protocole ne peut se produire qu’après l’installation réussie de tous les composants constituants (protocoles de base et protocoles en couches). La structure WSAPROTOCOL_INFO d’une chaîne de protocole utilise le paramètre ProtocolChain pour décrire la longueur de la chaîne et l’identité de chaque composant. Les protocoles individuels qui composent une chaîne sont répertoriés dans l’ordre dans le tableau ProtocolChain.ChainEntries, avec l’élément zéro du tableau correspondant au premier fournisseur en couches. Les protocoles sont identifiés par leurs valeurs CatalogEntryID, qui sont affectées par le Ws2_32.dll au moment de l’installation du protocole, et se trouvent dans la structure WSAPROTOCOL_INFO pour chaque protocole.

Les valeurs des paramètres restants dans la structure WSAPROTOCOL_INFO de la chaîne de protocole doivent être choisies pour refléter les attributs et les identificateurs qui caractérisent le mieux la chaîne de protocole dans son ensemble. Lors de la sélection de ces valeurs, les développeurs doivent tenir compte que les communications sur les chaînes de protocole ne peuvent se produire que lorsque les deux points de terminaison ont des chaînes de protocole compatibles installées et que les applications doivent être en mesure de reconnaître la structure de WSAPROTOCOL_INFO correspondante.

Lorsqu’un protocole de base est installé, il n’est pas nécessaire d’effectuer des entrées dans le tableau ProtocolChain.ChainEntries. Il est implicitement compris que le seul composant de cette chaîne est déjà identifié dans le paramètre CatalogEntryID de la même structure WSAPROTOCOL_INFO. Notez également que les chaînes de protocole peuvent ne pas inclure plusieurs instances du même protocole en couches.