NDIS_SWITCH_GET_NET_BUFFER_LIST_SWITCH_CONTEXT回调函数 (ndis.h)
Hyper-V 可扩展交换机扩展调用 GetNetBufferListSwitchContext 函数,以检索以前在 NET_BUFFER_LIST上设置的交换机上下文。
语法
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
)
{...}
参数
[in] NdisSwitchContext
一个NDIS_SWITCH_CONTEXT值,该值包含 Hyper-V 可扩展交换机扩展所附加到的可扩展交换机模块的句柄。 当扩展调用 NdisFGetOptionalSwitchHandlers 时,将通过 NdisSwitchContext 参数返回此句柄。
[in] NetBufferList
指向包含要检索的上下文的单个数据包 的NET_BUFFER_LIST 结构的指针。
[in] ContextType
上下文
使用设置上下文时使用的 NDIS_DECLARE_SWITCH_NET_BUFFER_LIST_CONTEXT_TYPE 声明的上下文类型。
返回值
如果在与指定上下文类型匹配 的NET_BUFFER_LIST 中找不到上下文,则为 NULL。 否则,返回指向缓冲区的非 NULL 指针。
注解
SetNetBufferListSwitchContext API 允许扩展将上下文附加到入口上的NET_BUFFER_LIST,并在出口时检索上下文。 即便如此,扩展应可复原到出口中不存在的入口上下文。 克隆NET_BUFFER_LIST时,不会保留开关上下文,因此在入口和出口之间克隆NET_BUFFER_LIST的情况下,NET_BUFFER_LIST将没有原始的开关上下文。
扩展必须管理上下文的生存期。 一种方法是使用 NdisAllocateNetBufferListContext 分配 NDIS NET_BUFFER_LIST上下文 (;如果扩展拥有NET_BUFFER_LIST池) ,则分配 NDIS,并使用 SetNetBufferListSwitchContext 将上下文类型标识符与 NDIS NET_BUFFER_LIST上下文相关联。 NBL 完成后,扩展可以使用 NdisFreeNetBufferListContext 释放 NDIS NET_BUFFER_LIST上下文 (,或者释放NET_BUFFER_LIST本身(如果它是由扩展) 发起的)。
有关可扩展交换机转发上下文的详细信息,请参阅 Hyper-V 可扩展交换机转发上下文。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 在 NDIS 6.30 及更高版本中受支持。 |
目标平台 | 桌面 |
标头 | ndis.h (包括 Ndis.h) |
IRQL | <= DISPATCH_LEVEL |
另请参阅
AllocateNetBufferListForwardingContext
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈