Partager via


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

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.

Les types de données suivants ont été déclarés pour accéder au contexte de transfert de commutateur extensible au sein de la structure NET_BUFFER_LIST d’un paquet :

NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO
Il s’agit d’une union 64 bits qui contient les caractéristiques de transfert d’un paquet. Ces données incluent les identificateurs du port source et de la connexion de carte réseau d’où provient le paquet. Ces données incluent également le nombre d’éléments inutilisés disponibles dans le tableau de ports de destination.

L’extension de commutateur extensible peut accéder à ces données à l’aide de la macro NET_BUFFER_LIST_SWITCH_FORWARDING_DETAIL .

NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY
Cette structure définit le tableau de ports de destination pour le paquet. Chaque élément de ce tableau est mis en forme en tant que structure NDIS_SWITCH_PORT_DESTINATION .

La structure NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY contient des membres qui spécifient le nombre actuel du nombre total d’éléments ainsi que le nombre d’éléments utilisés dans le tableau.

L’extension de commutateur extensible peut obtenir ce tableau en appelant la fonction GetNetBufferListDestinations . Si le pilote ajoute ou modifie des éléments dans le tableau pour un paquet avec plusieurs ports de destination, il doit appeler la fonction UpdateNetBufferListDestinations . Cette fonction valide ces modifications dans le tableau de ports de destination dans le contexte de transfert du paquet.

Note Pour valider les modifications apportées à un paquet avec un seul port de destination, il est plus efficace pour le pilote d’appeler la fonction AddNetBufferListDestination .

NDIS_SWITCH_PORT_DESTINATION
Cette structure définit un port de destination pour le paquet. Pour les paquets avec un seul port de destination, il n’existe qu’un seul élément NDIS_SWITCH_PORT_DESTINATION dans le tableau de ports de destination. Pour les paquets avec plusieurs ports de destination, il existe un ou plusieurs de ces éléments dans le tableau.

Une fois que l’extension de commutateur extensible a appelé GetNetBufferListDestinations pour obtenir le tableau de ports de destination du paquet, elle peut accéder à des éléments individuels dans le tableau à l’aide de la macro NDIS_SWITCH_PORT_DESTINATION_AT_ARRAY_INDEX .