NDIS_SWITCH_UPDATE_NET_BUFFER_LIST_DESTINATIONS fonction de rappel (ndis.h)
L’extension de commutateur extensible Hyper-V appelle la fonction UpdateNetBufferListDestinations pour valider les modifications apportées par l’extension à un paquet qui contient plusieurs ports de destination de commutateur extensibles. La fonction enregistre ces modifications dans le contexte de transfert de commutateur extensible hors bande (OOB) de la structure NET_BUFFER_LIST du paquet.
Syntaxe
NDIS_SWITCH_UPDATE_NET_BUFFER_LIST_DESTINATIONS NdisSwitchUpdateNetBufferListDestinations;
NDIS_STATUS NdisSwitchUpdateNetBufferListDestinations(
[in] NDIS_SWITCH_CONTEXT NdisSwitchContext,
[in, out] PNET_BUFFER_LIST NetBufferList,
[in] UINT32 NumberOfNewDestinations,
[in] PNDIS_SWITCH_FORWARDING_DESTINATION_ARRAY Destinations
)
{...}
Paramètres
[in] NdisSwitchContext
Valeur NDIS_SWITCH_CONTEXT qui contient le handle du module de commutateur extensible auquel l’extension de commutateur extensible Hyper-V est attachée. Lorsque l’extension appelle NdisFGetOptionalSwitchHandlers, ce handle est retourné via le paramètre NdisSwitchContext .
[in, out] NetBufferList
Pointeur vers une structure NET_BUFFER_LIST pour un paquet unique.
[in] NumberOfNewDestinations
Valeur UINT32 qui spécifie le nombre de nouveaux ports de destination ajoutés au paquet.
[in] Destinations
Pointeur vers une structure NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY . Cette structure spécifie les ports de destination du commutateur extensible du paquet.
Valeur retournée
Si l’appel réussit, la fonction retourne NDIS_STATUS_SUCCESS. Sinon, il retourne un code d’erreur NDIS_STATUS_Xxx défini dans Ndis.h.
Remarques
L’extension de commutateur extensible appelle la fonction GetNetBufferListDestinations pour obtenir un tableau des ports de destination du commutateur extensible pour un paquet. Si la fonction retourne correctement, le tableau est obtenu via le paramètre Destinations , qui contient un pointeur vers une structure NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY . Chaque élément de ce tableau est mis en forme en tant que structure NDIS_SWITCH_PORT_DESTINATION qui spécifie un port de destination pour le paquet.
Une fois que l’extension a obtenu la structure NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY , l’extension peut effectuer les opérations suivantes :
-
Ajoutez des éléments NDIS_SWITCH_PORT_DESTINATION supplémentaires dans le tableau.
Pour plus d’informations, consultez Ajout de données de port de destination de commutateur extensible à un paquet.
-
Modifiez les éléments de NDIS_SWITCH_PORT_DESTINATION existants du tableau pour exclure le transfert d’un paquet vers un port spécifié.
Pour plus d’informations, consultez Exclusion de la remise de paquets aux ports de destination du commutateur extensible.
En outre, une fois les modifications apportées aux ports de destination validées, les ports de destination ne peuvent pas être supprimés et seul le membre IsExcluded de la structure NDIS_SWITCH_PORT_DESTINATION d’un port de destination peut être modifié. Pour plus d’informations, consultez Exclusion de la remise de paquets aux ports de destination du commutateur extensible.
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