NDIS_SWITCH_COPY_NET_BUFFER_LIST_INFO fonction de rappel (ndis.h)
L’extension de commutateur extensible Hyper-V appelle la fonction CopyNetBufferListInfo pour copier le contexte de transfert hors bande (OOB) de la structure NET_BUFFER_LIST d’un paquet source vers la structure NET_BUFFER_LIST d’un paquet de destination. Ce contexte inclut le port source du commutateur extensible et les informations sur la carte réseau. Les informations de port de destination du commutateur extensible peuvent également être copiées.
Syntaxe
NDIS_SWITCH_COPY_NET_BUFFER_LIST_INFO NdisSwitchCopyNetBufferListInfo;
NDIS_STATUS NdisSwitchCopyNetBufferListInfo(
[in] NDIS_SWITCH_CONTEXT NdisSwitchContext,
[in, out] PNET_BUFFER_LIST DestNetBufferList,
[in] PNET_BUFFER_LIST SrcNetBufferList,
[in] UINT32 Flags
)
{...}
Paramètres
[in] NdisSwitchContext
Valeur NDIS_SWITCH_CONTEXT qui contient le handle du module de commutateur extensible auquel l’extension est attachée. Lorsque l’extension appelle NdisFGetOptionalSwitchHandlers, ce handle est retourné par le biais du paramètre NdisSwitchContext .
[in, out] DestNetBufferList
Pointeur vers une structure de NET_BUFFER_LIST pour le paquet de destination vers lequel le contexte de transfert de commutateur extensible est copié.
[in] SrcNetBufferList
Pointeur vers une structure de NET_BUFFER_LIST pour le paquet source à partir duquel le contexte de transfert de commutateur extensible est copié.
[in] Flags
Valeur UINT32. Lorsque l’indicateur NDIS_SWITCH_COPY_NBL_INFO_FLAGS_PRESERVE_DESTINATIONS est spécifié, la fonction copie les ports de destination du commutateur extensible du paquet source vers le paquet de destination.
Les données contenues dans l’union NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO du paquet source sont toujours copiées dans le contexte de transfert extensible du commutateur dans le paquet de destination. Ces données incluent les identificateurs de port source et l’index de la connexion de carte réseau d’où provient le paquet. Selon le nombre de ports de destination de commutateur extensible copiés dans le paquet de destination, le membre NumAvailableDestinations de l’union NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO est mis à jour dans le paquet de destination.
Pour plus d’informations sur le contexte de transfert, consultez Contexte de transfert de commutateur extensible Hyper-V.
Valeur retournée
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 CopyNetBufferListInfo pour copier les données OOB d’un paquet source vers un paquet de destination. Ces données comprennent les éléments suivants :
- Données du tableau NetBufferListInfo de la structure NET_BUFFER_LIST du paquet source.
- Le NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO données du contexte de transfert extensible du commutateur du paquet source.
-
Données pour les ports de destination du commutateur extensible à partir du contexte de transfert de commutateur extensible du paquet source.
Note Ces données ne sont copiées que si l’indicateur NDIS_SWITCH_COPY_NBL_INFO_FLAGS_PRESERVE_DESTINATIONS est spécifié.
-
L’extension doit d’abord initialiser une structure NET_BUFFER_LIST pour le paquet de destination qui est dérivé de la structure NET_BUFFER_LIST du paquet source.
Par exemple, l’extension peut appeler NdisAllocateCloneNetBufferList pour créer une copie complète du paquet source. L’extension peut également appeler NdisAllocateFragmentNetBufferList pour créer une copie d’un fragment du paquet source uniquement. Pour plus d’informations, consultez Structures NET_BUFFER_LIST dérivées.
- L’extension doit appeler la fonction AllocateNetBufferListForwardingContext pour allouer le contexte de transfert de commutateur extensible pour le paquet de destination. Ces données sont utilisées pour stocker les informations de transfert de commutateur extensible OOB, telles que les ports source et de destination d’un paquet.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Pris en charge dans NDIS 6.30 et versions ultérieures. |
Plateforme cible | Desktop (Expérience utilisateur) |
En-tête | ndis.h (inclure Ndis.h) |
IRQL | <= DISPATCH_LEVEL |
Voir aussi
AllocateNetBufferListForwardingContext
NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO
NdisAllocateCloneNetBufferList