NDIS_SWITCH_UPDATE_NET_BUFFER_LIST_DESTINATIONS回调函数 (ndis.h)
Hyper-V 可扩展交换机扩展调用 UpdateNetBufferListDestinations 函数,以提交扩展对包含多个可扩展交换机目标端口的数据包所做的修改。 该函数将这些修改保存到数据包 NET_BUFFER_LIST 结构的带外扩展交换机转发上下文。
语法
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
)
{...}
参数
[in] NdisSwitchContext
一个NDIS_SWITCH_CONTEXT值,该值包含附加到 Hyper-V 可扩展交换机扩展的可扩展交换机模块的句柄。 当扩展调用 NdisFGetOptionalSwitchHandlers时,将通过 NdisSwitchContext 参数返回此句柄。
[in, out] NetBufferList
指向单个数据包的 NET_BUFFER_LIST 结构的指针。
[in] NumberOfNewDestinations
一个 UINT32 值,该值指定添加到数据包的新目标端口数。
[in] Destinations
指向 NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY 结构的指针。 此结构指定数据包的可扩展交换机目标端口。
返回值
如果调用成功,该函数将返回NDIS_STATUS_SUCCESS。 否则,它将返回在 Ndis.h 中定义的 NDIS_STATUS_Xxx 错误代码。
言论
可扩展交换机扩展调用 GetNetBufferListDestinations 函数以获取数据包的可扩展交换机目标端口的数组。 如果函数成功返回,则通过 Destinations 参数获取数组,该参数包含指向 NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY 结构的指针。 此数组中的每个元素都格式化为一个 NDIS_SWITCH_PORT_DESTINATION 结构,该结构指定数据包的目标端口。
扩展获取 NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY 结构后,该扩展可以执行以下作:
-
在数组中添加其他 NDIS_SWITCH_PORT_DESTINATION 元素。
有关详细信息,请参阅 向数据包添加可扩展交换机目标端口数据。
-
修改数组的现有 NDIS_SWITCH_PORT_DESTINATION 元素,以排除数据包被转发到指定端口。
有关详细信息,请参阅 排除数据包传送到可扩展交换机目标端口。
此外,提交目标端口的更改后,无法删除目标端口,并且只能更改目标端口 NDIS_SWITCH_PORT_DESTINATION 结构的 IsExcluded 成员。 有关详细信息,请参阅 排除数据包传送到可扩展交换机目标端口。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | NDIS 6.30 及更高版本中受支持。 |
目标平台 | 桌面 |
标头 | ndis.h (包括 Ndis.h) |
IRQL | <= DISPATCH_LEVEL |
另请参阅
AllocateNetBufferListForwardingContext