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) à partir de la structure NET_BUFFER_LIST d’un paquet source vers la structure NET_BUFFER_LIST d’un paquet de destination. Ce contexte inclut les informations de port source de commutateur extensible et de carte réseau. Les informations de port de destination de 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é via le paramètre NdisSwitchContext.
[in, out] DestNetBufferList
Pointeur vers une structure 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 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 de 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 à partir de laquelle le paquet provient. 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 Hyper-V contexte de transfert extensible.
Valeur de retour
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 incluent les éléments suivants :
- Données du tableau NetBufferListInfo de la structure NET_BUFFER_LIST du paquet source.
- Les données NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO du contexte de transfert extensible du paquet source.
-
Données des ports de destination de commutateur extensible du contexte de transfert de commutateur extensible du paquet source.
Remarque Ces données sont copiées uniquement si l’indicateur de 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 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 seul fragment du paquet source. Pour plus d’informations, consultez structures dérivées NET_BUFFER_LIST.
- 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.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Prise en charge dans NDIS 6.30 et versions ultérieures. |
plateforme cible | Bureau |
d’en-tête | ndis.h (include Ndis.h) |
IRQL | <= DISPATCH_LEVEL |
Voir aussi
AllocateNetBufferListForwardingContext
NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO
NdisAllocateCloneNetBufferList