NDIS_SWITCH_GET_NET_BUFFER_LIST_SWITCH_CONTEXT fonction de rappel (ndis.h)
L’extension de commutateur extensible Hyper-V appelle la fonction GetNetBufferListSwitchContext pour récupérer le contexte de commutateur précédemment défini sur le NET_BUFFER_LIST.
Syntaxe
NDIS_SWITCH_GET_NET_BUFFER_LIST_SWITCH_CONTEXT NdisSwitchGetNetBufferListSwitchContext;
PVOID NdisSwitchGetNetBufferListSwitchContext(
[in] NDIS_SWITCH_CONTEXT NdisSwitchContext,
[in] PNET_BUFFER_LIST NetBufferList,
[in] PNDIS_SWITCH_NET_BUFFER_LIST_CONTEXT_TYPE ContextType
)
{...}
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] NetBufferList
Pointeur vers une structure de NET_BUFFER_LIST pour un paquet unique qui contient le contexte à récupérer.
[in] ContextType
Context
Type de contexte déclaré à l’aide du NDIS_DECLARE_SWITCH_NET_BUFFER_LIST_CONTEXT_TYPE utilisé lors de la définition du contexte.
Valeur retournée
NULL si aucun contexte n’a été trouvé dans le NET_BUFFER_LIST qui correspond au type de contexte spécifié. Sinon, un pointeur non NULL vers la mémoire tampon est retourné.
Remarques
Les API SetNetBufferListSwitchContext permettent aux extensions d’attacher un contexte à un NET_BUFFER_LIST lors de l’entrée et de le récupérer en sortie. Malgré cela, les extensions doivent être résilientes au contexte d’entrée qui n’est pas présent en sortie. Le contexte de commutateur n’est pas conservé lorsqu’un NET_BUFFER_LIST est cloné. Par conséquent, dans les scénarios où le NET_BUFFER_LIST est cloné entre l’entrée et la sortie, le NET_BUFFER_LIST n’aura pas le contexte de commutateur d’origine.
L’extension doit gérer la durée de vie du contexte. Une approche consiste à allouer NDIS NET_BUFFER_LIST contexte (à l’aide de NdisAllocateNetBufferListContext, ou préconfiguré si l’extension possède le pool NET_BUFFER_LIST) et d’utiliser setNetBufferListSwitchContext pour associer un identificateur de type de contexte au contexte NDIS NET_BUFFER_LIST. Une fois le NBL terminé, l’extension peut libérer le contexte NET_BUFFER_LIST NDIS (à l’aide de NdisFreeNetBufferListContext, ou de libérer le NET_BUFFER_LIST lui-même s’il a été créé par l’extension).
Pour plus d’informations sur le contexte de transfert de commutateur extensible, consultez Contexte de transfert de commutateur extensible Hyper-V.
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
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