Partager via


NDIS_SWITCH_SET_NET_BUFFER_LIST_SOURCE fonction de rappel (ndis.h)

La fonction SetNetBufferListSource définit l’identificateur de port source de commutateur extensible Hyper-V et l’index de carte réseau pour un paquet spécifié par une structure 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é via le paramètre NdisSwitchContext.

NetBufferList

Pointeur vers une structure NET_BUFFER_LIST pour un paquet unique.

Remarque 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 Hyper-V contexte de transfert de commutateur extensible.
 

[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.

Remarque 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 se trouvent 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 Hyper-V ports de commutateur extensible et les états de carte réseau.
 

Valeur de retour

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.
    Remarque Avant que l’extension n’appelle SetNetBufferListSource pour un paquet alloué, elle doit appeler AllocateNetBufferListForwardingContext.
     
  • Paquet en double que l’extension avait cloné à partir d’un paquet d’origine qu’elle filtrait. L’extension duplique un paquet en appelant NdisAllocateCloneNetBufferList.
Dans les deux cas, un nouveau paquet ou dupliqué aura 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 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 non défini par défaut pour le paquet, cela permet aux stratégies de ce port d’être appliquées au paquet.

Remarque Étant donné que les paquets avec un identificateur de port source de 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 du NDIS_SWITCH_DEFAULT_PORT_ID pour les ports sources, consultez Gestion des données de port source Hyper-V extensible switch.
 
Pour plus d’informations sur les opérations d’envoi et de réception de paquets, consultez Filtrer les opérations d’envoi et de réception du module.

Exigences

Exigence Valeur
client minimum pris en charge Prise en charge dans NDIS 6.30 et versions ultérieures.
plateforme cible Bureau
d’en-tête ndis.h (include Ndis.h)
IRQL <= DISPATCH_LEVEL

Voir aussi

AllocateNetBufferListForwardingContext

NET_BUFFER

NET_BUFFER_LIST

NdisAllocateCloneNetBufferList

NdisFGetOptionalSwitchHandlers