Partager via


Réception et traduction d’adresses de carte réseau

Le commutateur Windows Sockets utilise toujours les familles d’adresses WSK, qui contiennent des adresses IP, lorsqu’il interagit avec les fournisseurs de services SAN et les cartes réseau SAN. Le commutateur n’utilise pas la famille d’adresses natives d’un SAN. Par conséquent, un fournisseur de services SAN doit utiliser son pilote proxy associé pour récupérer la liste des adresses IP affectées à ses cartes réseau. Le fournisseur de services SAN utilise ces adresses IP lors de l’interaction avec son pilote proxy. Le pilote proxy doit traduire entre les adresses IP et les adresses natives.

Pendant l’initialisation, un pilote proxy s’inscrit généralement auprès de l’interface TDI (Transport Driver Interface) pour les notifications de changement d’adresse. Tous les transports compatibles Plug-and-Play (PnP), y compris TCP/IP, fournissent des notifications de changement d’adresse via TDI aux clients qui se sont inscrits pour ces notifications.

Note TDI ne sera pas pris en charge dans les versions de Microsoft Windows après Windows Vista. Utilisez la plateforme de filtrage Windows ou le noyau Winsock à la place.

Inscription à la notification de modification d’adresse

Pendant l’initialisation, un pilote proxy appelle la fonction TdiRegisterPnPHandlers pour s’inscrire aux notifications de changement d’adresse. Dans cet appel, le pilote proxy passe des pointeurs vers des fonctions de rappel pour les ajouts et les suppressions d’adresses dans les membres AddAddressHandlerV2 et DelAddressHandlerV2 de la structure TDI_CLIENT_INTERFACE_INFO. Une fois que le pilote proxy s’est inscrit pour recevoir ces notifications, TDI indique rapidement toutes les adresses réseau actuellement actives à l’aide du rappel d’adresse d’ajout.

TDI transmet les paramètres suivants aux fonctions de rappel add-address ou delete-address d’un pilote proxy :

Adresse
Pointeur vers une structure TA_ADDRESS qui décrit l’adresse réseau affectée ou supprimée de la carte réseau. Dans le cas de TCP/IP, ce pointeur est en fait un pointeur vers une structure TA_ADDRESS_IP.

DeviceName
Pointeur vers une chaîne Unicode qui identifie la liaison de transport vers la carte réseau à laquelle l’adresse est associée. Dans le cas de TCP/IP, la chaîne Unicode a le format suivant :

\Device\Tcpip_{NIC-GUID}

où NIC-GUID est l’identificateur global unique attribué par le sous-système de configuration réseau à la carte réseau.

Les définitions de structure précédentes sont définies dans le fichier d’en-tête tdi.h. Les fonctions d’inscription et de rappel précédentes sont définies dans le fichier d’en-tête tdikrnl.h. Ces fichiers d’en-tête sont disponibles dans le Kit de développement de pilotes Microsoft Windows (DDK) et le Kit de pilotes Windows (WDK). Des informations détaillées sur les notifications PnP TDI sont incluses dans les rappels de client TDI et les gestionnairesd’événements du client TDI et de notification PnP.

Note TDI ne sera pas pris en charge dans les versions de Microsoft Windows après Windows Vista. Utilisez la plateforme de filtrage Windows ou le noyau Winsock à la place.

Gestion d’une liste d’adresses IP

Le pilote proxy d’un fournisseur de services SAN utilise des notifications d’adresse d’ajout et de suppression d’adresse pour conserver la liste des adresses IP affectées à chaque carte réseau sous son contrôle. Le pilote de proxy utilise cette liste pour traduire une ou plusieurs adresses IP affectées à une carte réseau SAN par le transport TCP/IP et les adresses SAN natives. Le pilote proxy doit également fournir une routine de contrôle de périphérique qui rend la liste des adresses IP affectées à une carte réseau disponible pour le commutateur Windows Sockets chaque fois que le commutateur effectue une requête de code de contrôle SIO_ADDRESS_LIST_QUERY. La routine DriverEntry du pilote proxy doit spécifier un point d’entrée pour cette routine de contrôle de périphérique.

Le commutateur Windows Sockets gère une liste de toutes les adresses IP affectées à chaque carte réseau SAN. Pour récupérer les adresses IP de cette liste inclusive, le commutateur appelle la fonction WSPIoctl de chaque fournisseur de services SAN, en passant le code de contrôle SIO_ADDRESS_LIST_QUERY. Chaque fournisseur de services SAN, à son tour, interroge son pilote proxy associé pour sa liste individuelle d’adresses IP affectées à ses cartes réseau SAN. Une fois que le commutateur est averti d’un changement d’adresse, il interroge à nouveau chaque fournisseur de services SAN pour les mises à jour dans chaque liste individuelle.