union NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO (ndis.h)
L’union NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO spécifie les informations permettant de transférer un paquet vers un ou plusieurs ports de commutateur extensible Hyper-V.
Ces informations sont contenues dans les données hors bande (OOB) de la structure NET_BUFFER_LIST du paquet.
Syntaxe
typedef union _NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO {
UINT64 AsUINT64;
struct {
UINT32 NumAvailableDestinations : 16;
UINT32 SourcePortId : 16;
UINT32 SourceNicIndex : 8;
UINT32 NativeForwardingRequired : 1;
#if ...
UINT32 Reserved1 : 1;
#else
UINT32 Reserved1 : 2;
#endif
UINT32 IsPacketDataSafe : 1;
UINT32 SafePacketDataSize : 12;
UINT32 IsPacketDataUncached : 1;
UINT32 IsSafePacketDataUncached : 1;
UINT32 Reserved2 : 7;
};
} NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO, *PNDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO;
Membres
AsUINT64
Valeur de NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO 64 bits complète.
NumAvailableDestinations
Valeur qui spécifie le nombre d’éléments de ports de destination de commutateur extensibles inutilisés au sein d’une structure de NET_BUFFER_LIST . Pour plus d'informations, consultez la section Notes.
SourcePortId
Identificateur du port de commutateur extensible source d’où provient le NET_BUFFER_LIST .
SourceNicIndex
Valeur UINT32 qui spécifie l’index de la carte réseau source connectée au port de commutateur extensible spécifié par le membre SourcePortId .
Pour plus d’informations sur cette valeur d’index, consultez Valeurs d’index de carte réseau.
NativeForwardingRequired
Si ce membre est défini sur TRUE, packet est un paquet NVGRE, et le composant Hyper-V Network Virtualization (HNV) du commutateur extensible Hyper-V transfère ce paquet. Pour plus d’informations, consultez Transfert hybride.
Cet indicateur ne doit être écrit dans aucune extension.
Reserved1
Ce membre est réservé à une utilisation future par NDIS.
Ce membre est réservé à une utilisation future par NDIS.
IsPacketDataSafe
Si ce membre a la valeur TRUE, toutes les données de paquet proviennent de la mémoire de l’hôte approuvée.
SafePacketDataSize
Valeur qui spécifie le nombre d’octets consécutifs dans les données de paquet qui se trouvent dans la mémoire de l’hôte approuvé. Cette valeur est en unités d’octets à partir du début des données de paquet. Le reste des données de paquet (le cas échéant) après la valeur SafePacketDataSize se trouve dans la mémoire partagée non approuvée accessible par les partitions enfants et parentes Hyper-V.
Pour plus d'informations, consultez la section Notes.
IsPacketDataUncached
Si cet indicateur n’est pas défini, les données de paquet entières sont mises en cache. S’il est défini, une partie ou la totalité des données n’est pas mise en cache. Une fois la valeur définie, case activée le champ IsSafePacketDataUncached pour voir si au moins la partie SafePacketData est mise en cache.
IsSafePacketDataUncached
Si l’indicateur IsPacketDataUncached est défini, ce champ indique si la partie SafePacketData du paquet est mise en cache. Si c’est le cas, consultez le champ SafePacketDataSize pour connaître le nombre d’octets mis en cache.
Reserved2
Ce membre est réservé à une utilisation future par NDIS.
Remarques
Les extensions de commutateur extensible peuvent utiliser la macro NET_BUFFER_LIST_SWITCH_FORWARDING_DETAIL pour accéder à l’union NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO dans une structure de NET_BUFFER_LIST .
Le membre NumAvailableDestinations de l’union NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO spécifie le nombre d’éléments de port de destination de commutateur extensibles inutilisés au sein d’une structure de NET_BUFFER_LIST . Chaque port de destination de commutateur extensible est spécifié par un élément NDIS_SWITCH_PORT_DESTINATION dans la structure NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY d’une structure NET_BUFFER_LIST . L’extension de commutateur extensible appelle GetNetBufferListDestinations pour obtenir les NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY actuelles dans une structure de NET_BUFFER_LIST .
Le membre NativeForwardingRequired spécifie si le paquet est un paquet NVGRE ou non. S’il a la valeur TRUE, le paquet est un paquet NVGRE et l’extension de transfert ne détermine pas le tableau de ports de destination de transfert du paquet, bien qu’elle puisse ajouter ou exclure des ports de destination dans le tableau. Pour plus d’informations, consultez Transfert hybride.
L’indicateur IsPacketDataUncached peut aider les extensions de commutateur extensibles à déterminer si une partie ou la totalité des données de paquets sont mises en cache ou non. Si cet indicateur est défini, une partie ou la totalité des données n’est pas mise en cache, et l’indicateur IsSafePacketDataUncached indique à l’extension si la partie données de paquets sécurisés est mise en cache. Si les données de paquets sécurisés sont mises en cache, le membre SafePacketDataSize spécifie le nombre d’octets mis en cache.
SafePacketDataSize spécifie la taille des données de paquet qui se trouvent dans la mémoire locale ou approuvée dans le système d’exploitation parent de la partition parente Hyper-V. Cette mémoire n’est pas accessible par la partition enfant. Par conséquent, il est considéré comme « sécurisé » contre les mises à jour non synchronisées par le système d’exploitation invité qui s’exécute dans cette partition.
Si une extension de commutateur extensible nécessite plus d’espace approuvé pour inspecter les données de paquets, elle doit suivre les étapes suivantes :
- L’extension doit dupliquer la structure NET_BUFFER_LIST du paquet en allouant une structure NET_BUFFER_LIST et NET_BUFFER . L’extension appelle ensuite NdisCopyFromNetBufferToNetBuffer pour dupliquer la structure NET_BUFFER du paquet. Si cette fonction se termine correctement, les données du paquet sont copiées dans la mémoire approuvée.
- L’extension doit appeler CopyNetBufferListInfo pour copier les données OOB du paquet dans le paquet dupliqué.
- Une fois le paquet d’origine dupliqué, l’extension doit obtenir l’union NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO dans le paquet dupliqué à l’aide de la macro NET_BUFFER_LIST_SWITCH_FORWARDING_DETAIL . L’extension doit définir le membre IsPacketDataSafe sur TRUE.
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
Transfert de paquets vers des ports de commutateur extensible Hyper-V
Transfert de paquets vers des cartes réseau physiques
NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour