Partager via


NDIS_SWITCH_SET_NET_BUFFER_LIST_SOURCE fonction de rappel (ndis.h)

La fonction SetNetBufferListSource définit l’identificateur de port source du commutateur extensible Hyper-V et l’index de carte réseau pour un paquet spécifié par une structure de NET_BUFFER_LIST .

Syntaxe

NDIS_SWITCH_SET_NET_BUFFER_LIST_SOURCE NdisSwitchSetNetBufferListSource;

NDIS_STATUS NdisSwitchSetNetBufferListSource(
  [in] NDIS_SWITCH_CONTEXT NdisSwitchContext,
       PNET_BUFFER_LIST NetBufferList,
  [in] NDIS_SWITCH_PORT_ID PortId,
  [in] NDIS_SWITCH_NIC_INDEX NicIndex
)
{...}

Paramètres

[in] NdisSwitchContext

Valeur NDIS_SWITCH_CONTEXT qui contient le handle du module de commutateur extensible auquel l’extension de commutateur extensible Hyper-V est attachée. Lorsque l’extension appelle NdisFGetOptionalSwitchHandlers, ce handle est retourné par le biais du paramètre NdisSwitchContext .

NetBufferList

Pointeur vers une structure NET_BUFFER_LIST pour un paquet unique.

Note Cette structure doit contenir un contexte de transfert de commutateur extensible qui a été précédemment alloué en appelant la fonction AllocateNetBufferListForwardingContext . Pour plus d’informations sur le contexte de transfert de commutateur extensible, consultez Contexte de transfert de commutateur extensible Hyper-V.
 

[in] PortId

Valeur NDIS_SWITCH_PORT_ID qui spécifie l’identificateur unique du port source sur le commutateur extensible.

[in] NicIndex

Valeur NDIS_SWITCH_NIC_INDEX qui spécifie l’index de la carte réseau connectée au port de commutateur extensible spécifié par le paramètre PortId .

Pour plus d’informations sur les valeurs NDIS_SWITCH_NIC_INDEX, consultez Valeurs d’index de carte réseau.

Note Ce paramètre doit spécifier la valeur d’index d’une carte réseau dans un état connecté. Les valeurs d’index des cartes réseau qui sont dans un état créé ou déconnecté ne peuvent pas être spécifiées. Pour plus d’informations sur les états de connexion réseau, consultez États du port et de la carte réseau du commutateur extensible Hyper-V.
 

Valeur retournée

Si l’appel réussit, la fonction retourne NDIS_STATUS_SUCCESS. Sinon, elle retourne un code d’erreur NDIS_STATUS_Xxx défini dans Ndis.h.

Remarques

L’extension de commutateur extensible appelle la fonction SetNetBufferListSource pour définir l’identificateur de port source et l’index de carte réseau dans la structure NET_BUFFER_LIST d’un paquet. L’extension effectue cette opération pour les types de paquets suivants :

  • Nouveau paquet que l’extension a alloué pour les opérations d’envoi ou de réception.
    Note Avant que l’extension appelle SetNetBufferListSource pour un paquet alloué, elle doit appeler AllocateNetBufferListForwardingContext.
     
  • Paquet dupliqué que l’extension a cloné à partir d’un paquet d’origine qu’elle filtait. L’extension duplique un paquet en appelant NdisAllocateCloneNetBufferList.
Dans les deux cas, un paquet nouveau ou dupliqué a son identificateur de port source défini sur NDIS_SWITCH_DEFAULT_PORT_ID et son index de carte réseau source défini sur NDIS_SWITCH_DEFAULT_NIC_INDEX. L’extension appelle la fonction SetNetBufferListSource pour modifier l’identificateur de port source et l’index de la carte réseau dans la structure NET_BUFFER_LIST d’un paquet.

Par exemple, un paquet qui a un identificateur de port source de NDIS_SWITCH_DEFAULT_PORT_ID est approuvé et contourne de nombreuses stratégies de port de commutateur extensible. Ces stratégies incluent les listes de contrôle d’accès (ACL) et la qualité de service (QoS). Si l’extension spécifie un port source autre que celui par défaut pour le paquet, cela permet d’appliquer les stratégies de ce port au paquet.

Note Étant donné que les paquets dont l’identificateur de port source est NDIS_SWITCH_DEFAULT_PORT_ID sont approuvés, l’extension doit utiliser cet identificateur de port source très soigneusement lorsqu’il provient du trafic de paquets. Pour plus d’informations sur l’utilisation recommandée de la NDIS_SWITCH_DEFAULT_PORT_ID pour les ports sources, consultez Gestion des données de port source du commutateur extensible Hyper-V.
 
Pour plus d’informations sur les opérations d’envoi et de réception de paquets, consultez Opérations d’envoi et de réception de module de filtre.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Pris en charge dans NDIS 6.30 et versions ultérieures.
Plateforme cible Desktop (Expérience utilisateur)
En-tête ndis.h (inclure Ndis.h)
IRQL <= DISPATCH_LEVEL

Voir aussi

AllocateNetBufferListForwardingContext

NET_BUFFER

NET_BUFFER_LIST

NdisAllocateCloneNetBufferList

NdisFGetOptionalSwitchHandlers