NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY structure (ndis.h)

La structure NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY spécifie un tableau de ports de destination de commutateur extensible Hyper-V pour un paquet. Chaque élément du tableau est mis en forme en tant que structure NDIS_SWITCH_PORT_DESTINATION .

Ces informations sont contenues dans les données hors bande (OOB) de la structure NET_BUFFER_LIST du paquet.

Syntaxe

typedef struct _NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY {
  NDIS_OBJECT_HEADER Header;
  UINT32             ElementSize;
  UINT32             NumElements;
  UINT32             NumDestinations;
  PVOID              FirstElement;
} NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY, *PNDIS_SWITCH_FORWARDING_DESTINATION_ARRAY;

Membres

Header

Type, révision et taille de la structure NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY . Ce membre est mis en forme en tant que structure NDIS_OBJECT_HEADER .

Le membre Type de l’en-tête doit être défini sur NDIS_OBJECT_TYPE_DEFAULT. Pour spécifier la version de la structure NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY , le membre Revision de Header doit être défini sur la valeur suivante :

NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY_REVISION_1

Version d’origine pour NDIS 6.30 et versions ultérieures.

Définissez le membre Taille sur NDIS_SIZEOF_NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY_REVISION_1.

ElementSize

Valeur ULONG qui spécifie la taille, en octets, de chaque élément NDIS_SWITCH_PORT_DESTINATION qui suit la structure NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY .

NumElements

Valeur ULONG qui spécifie le nombre total d’éléments NDIS_SWITCH_PORT_DESTINATION dans la structure NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY .

La valeur du membre NumElements spécifie le nombre d’éléments actuellement utilisés NDIS_SWITCH_PORT_DESTINATION (comme spécifié par le membre NumDestinations ) plus le nombre d’éléments disponibles pour les nouveaux ports de destination. Le nombre d’éléments NDIS_SWITCH_PORT_DESTINATION inutilisés dans la structure NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY est calculé par (NumElements - NumDestinations).

NumDestinations

Valeur ULONG qui spécifie le nombre d’éléments NDIS_SWITCH_PORT_DESTINATION dans la structure NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY qui spécifient des destinations de port.

Note Si NumElements est défini sur zéro, ce membre est ignoré.
 

FirstElement

Pointeur vers le premier élément NDIS_SWITCH_PORT_DESTINATION dans la mémoire tampon qui contient la structure NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY et tous ses éléments.

Remarques

L’extension de commutateur extensible peut effectuer les opérations suivantes avec les ports de destination dans la structure NET_BUFFER_LIST d’un paquet :

  • Interrogez les ports de destination actuels sur le commutateur extensible vers lequel le paquet sera transféré.

    L’extension de commutateur extensible appelle la fonction GetNetBufferListDestinations pour obtenir le tableau des destinations de port pour un paquet. GetNetBufferListDestinations retourne un pointeur vers la structure NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY dans le paramètre Destinations .

    Pour plus d’informations, consultez Interrogation des données de port de destination du commutateur extensible d’un paquet.

  • Ajoutez ou modifiez les ports de destination pour le paquet.

    Après avoir demandé les ports de destination actuels pour le paquet, l’extension de commutateur extensible peut effectuer les opérations suivantes :

    • Une extension de transfert peut ajouter de nouveaux ports de destination à la structure NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY .
    • Une extension de filtrage ou de transfert peut modifier les données au sein d’une structure NDIS_SWITCH_PORT_DESTINATION pour un port de destination.
      Note Une extension de filtrage ne peut modifier que le membre IsExcluded de cette structure. Une extension de transfert peut également modifier les membres PreserveVLAN et PreservePriority .
       
    Si l’extension ajoute ou modifie des destinations de port, elle doit appeler UpdateNetBufferListDestinations pour valider les modifications apportées aux ports de destination dans les données OOB du paquet dans la structure NET_BUFFER_LIST .

    Pour plus d’informations, consultez Gestion des données de port de destination du commutateur extensible Hyper-V.

Les extensions de commutateur extensible peuvent utiliser la macro NDIS_SWITCH_PORT_DESTINATION_AT_ARRAY_INDEX pour accéder aux éléments NDIS_SWITCH_PORT_DESTINATION dans un tableau NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY .

Configuration requise

Condition requise Valeur
Client minimal pris en charge Pris en charge dans NDIS 6.30 et versions ultérieures.
En-tête ndis.h (inclure Ndis.h)

Voir aussi

Ajout de données de port de destination de commutateur extensible à un paquet

Exclusion de la remise de paquets vers les ports de destination du commutateur extensible

Extensions de transfert

GetNetBufferListDestinations

Transfert hybride

NDIS_OBJECT_HEADER

NDIS_SWITCH_PORT_DESTINATION

NDIS_SWITCH_PORT_DESTINATION_AT_ARRAY_INDEX

NET_BUFFER_LIST

Vue d’ensemble du commutateur extensible Hyper-V

UpdateNetBufferListDestinations