Partager via


Gestion du contexte de transfert de commutateur extensible Hyper-V

Note Cette page suppose que vous êtes familiarisé avec les informations et les diagrammes dans Vue d’ensemble du commutateur extensible Hyper-V et du transfert hybride.

La structure NET_BUFFER_LIST pour chaque paquet qui traverse le chemin de données de commutateur extensible Hyper-V contient des données OOB (out-of-band). Ces données spécifient le port source d’où provient le paquet, ainsi qu’un ou plusieurs ports de destination pour la remise de paquets. Ces données OOB sont appelées contexte de transfert de commutateur extensible.

Note Le contexte de transfert de commutateur extensible est différent de la structure NET_BUFFER_LIST_CONTEXT . Cela permet aux extensions d’allouer leurs propres structures de contexte sans affecter le contexte de transfert.

Le contexte de transfert de commutateur extensible est alloué et libéré de la manière suivante :

Toutes les extensions de commutateur extensible peuvent appeler les fonctions de gestionnaire de commutateur extensible suivantes pour accéder aux données dans le contexte de transfert du paquet :

AllocateNetBufferListForwardingContext
Alloue le contexte de transfert de commutateur extensible et prépare une structure de NET_BUFFER_LIST pour les opérations d’envoi ou de réception au sein du commutateur extensible.

CopyNetBufferListInfo
Copie le contexte de transfert de la structure NET_BUFFER_LIST d’un paquet source vers la structure NET_BUFFER_LIST d’un paquet de destination. Ces données incluent les informations relatives au port source et à la carte réseau extensibles du commutateur. Les informations de port de destination du commutateur extensible peuvent également être copiées dans le paquet de destination.

FreeNetBufferListForwardingContext
Libère les ressources dans le contexte de transfert extensible d’une structure de NET_BUFFER_LIST . Ces données ont été utilisées pour les opérations d’envoi ou de réception dans un commutateur extensible Hyper-V et ont été précédemment allouées en appelant la fonction AllocateNetBufferListForwardingContext .

GetNetBufferListDestinations
Retourne les ports de destination du contexte de transfert de la structure NET_BUFFER_LIST d’un paquet.

Une extension de transfert est chargée d’ajouter des ports de destination pour un paquet, sauf s’il s’agit d’un paquet NVGRE. (Pour plus d’informations, consultez Transfert hybride.) L’extension appelle les fonctions de gestionnaire de commutateur extensible suivantes pour ajouter ou mettre à jour les ports de destination dans le contexte de transfert du paquet :

AddNetBufferListDestination
Ajoute une destination unique à la zone de contexte de transfert de commutateur extensible pour un paquet spécifié par une structure de NET_BUFFER_LIST .

Note Cet appel valide la modification apportée à la zone de contexte de transfert. Dans ce cas, l’extension de transfert n’a pas besoin d’appeler UpdateNetBufferListDestinations.

GrowNetBufferListDestinations
Augmente la taille du tableau de ports de destination dans la zone de contexte de transfert de la structure NET_BUFFER_LIST d’un paquet.

UpdateNetBufferListDestinations
Valide les modifications apportées par l’extension à un ou plusieurs ports de destination de commutateur extensible d’un paquet. Cette fonction met à jour le contexte de transfert de la structure NET_BUFFER_LIST d’un paquet avec ces modifications.

Note Une fois que l’extension de transfert a validé les modifications des ports de destination dans le contexte de transfert, les ports de destination ne peuvent pas être supprimés et seul le membre IsExcluded de la structure NDIS_SWITCH_PORT_DESTINATION d’un port de destination peut être modifié. Pour plus d’informations, consultez Exclusion de la distribution de paquets vers les ports de destination du commutateur extensible.

Contexte de transfert de commutateur extensible Hyper-V

Types de données de contexte de transfert de commutateur extensible Hyper-V