Partager via


Suppression d’un commutateur de carte réseau

Une carte réseau qui prend en charge la virtualisation d’E/S racine unique (SR-IOV) doit être en mesure de supprimer un commutateur de carte réseau. Seul le pilote miniport pour la fonction physique PCI Express (PCIe) de l’adaptateur SR-IOV peut supprimer un commutateur de carte réseau sur l’adaptateur.

Note À compter de NDIS 6.30 dans Windows Server 2012, l’interface SR-IOV ne prend en charge qu’un seul commutateur de carte réseau sur la carte réseau. Ce commutateur est appelé commutateur de carte réseau par défaut et est référencé par l’identificateur NDIS_DEFAULT_SWITCH_ID.

Avant d’arrêter le pilote pf miniport, NDIS supprime le commutateur de carte réseau en émettant une demande de jeu d’identificateur d’objet (OID) de OID_NIC_SWITCH_DELETE_SWITCH. Le membre InformationBuffer de la structure NDIS_OID_REQUEST contient un pointeur vers une structure de NDIS_NIC_SWITCH_DELETE_SWITCH_PARAMETERS qui spécifie l’identificateur du commutateur en cours de suppression.

NDIS applique les stratégies suivantes avant d’émettre la demande de jeu OID de OID_NIC_SWITCH_DELETE_SWITCH au pilote PF miniport :

  • NDIS garantit que tous les filtres de réception ont été effacés des ports virtuels par défaut et non par défaut (VPorts) sur le commutateur de carte réseau. Les filtres de réception sont effacés via une demande de jeu OID de OID_RECEIVE_FILTER_CLEAR_FILTER.

  • NDIS garantit que tous les ports virtuels non par défaut (VPorts) créés sur le commutateur ont été précédemment supprimés. Les VPorts sont supprimés par le biais d’une demande de jeu OID de OID_NIC_SWITCH_DELETE_VPORT.

  • NDIS garantit que toutes les ressources pour les fonctions virtuelles PCIe attachées au commutateur de carte réseau ont été précédemment libérées. Les machines virtuelles sont libérées via une demande d’ensemble OID de OID_NIC_SWITCH_FREE_VF.

Lorsqu’il reçoit la demande de méthode OID de OID_NIC_SWITCH_DELETE_SWITCH, le pilote pf miniport doit effectuer les opérations suivantes :

  1. Si le pilote pf miniport prend en charge la création et la configuration statiques de commutateurs de cartes réseau, il doit libérer les ressources logicielles associées au commutateur de carte réseau spécifié. Toutefois, le pilote ne peut libérer les ressources matérielles du commutateur de carte réseau que lorsque MiniportHaltEx est appelé.

    Pour plus d’informations sur la création de commutateurs de cartes réseau statiques, consultez Création statique d’un commutateur de carte réseau.

  2. Si le pilote pf miniport prend en charge la création et la configuration dynamiques de commutateurs de carte réseau, il doit libérer les ressources matérielles et logicielles associées au commutateur de carte réseau spécifié.

    Pour plus d’informations sur la création d’un commutateur de carte réseau dynamique, consultez Création dynamique d’un commutateur de carte réseau.

  3. Si le pilote pf miniport prend en charge la création dynamique de commutateurs de carte réseau et que tous les commutateurs de carte réseau ont été supprimés sur la carte réseau, le pilote doit désactiver la virtualisation sur la carte en appelant NdisMEnableVirtualization. Pour désactiver la virtualisation, la carte réseau doit définir le paramètre EnableVirtualization sur FALSE et le paramètre NumVFs sur zéro.

    NdisMEnableVirtualization efface le membre NumVFs et le bit Enable VF dans la structure de capacité étendue SR-IOV dans l’espace de configuration PCIe du pf de la carte réseau.

    Note Si le pilote pf miniport prend en charge la création et la configuration statiques de commutateurs de cartes réseau, il doit uniquement appeler NdisMEnableVirtualization lorsque MiniportHaltEx est appelé.