NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY 结构指定数据包的 Hyper-V 可扩展交换机目标端口的数组。 数组中的每个元素都格式化为 NDIS_SWITCH_PORT_DESTINATION 结构。
此信息包含在数据包 NET_BUFFER_LIST 结构的带外(OOB)数据中。
语法
typedef struct _NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY {
NDIS_OBJECT_HEADER Header;
UINT32 ElementSize;
UINT32 NumElements;
UINT32 NumDestinations;
PVOID FirstElement;
} NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY, *PNDIS_SWITCH_FORWARDING_DESTINATION_ARRAY;
成员
Header
NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY 结构的类型、修订和大小。 此成员的格式设置为 NDIS_OBJECT_HEADER 结构。
标头 的 类型 成员必须设置为NDIS_OBJECT_TYPE_DEFAULT。 若要指定 NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY 结构的版本,必须将 标头修订版 成员设置为以下值:
NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY_REVISION_1
NDIS 6.30 及更高版本的原始版本。
将 大小 成员设置为NDIS_SIZEOF_NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY_REVISION_1。
ElementSize
一个 ULONG 值,该值指定 NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY 结构后面的每个 NDIS_SWITCH_PORT_DESTINATION 元素的大小(以字节为单位)。
NumElements
一个 ULONG 值,该值指定 NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY 结构中 NDIS_SWITCH_PORT_DESTINATION 元素的总数。
NumElements 成员的值指定当前使用的 NDIS_SWITCH_PORT_DESTINATION 元素数(由 NumDestinations 成员指定)以及可用于新目标端口的元素数。 NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY 结构中未使用的 NDIS_SWITCH_PORT_DESTINATION 元素数由 (NumElements - NumDestinations) 计算。
NumDestinations
一个 ULONG 值,该值指定指定端口目标的 NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY 结构中的 NDIS_SWITCH_PORT_DESTINATION 元素数。
FirstElement
指向缓冲区中第一个 NDIS_SWITCH_PORT_DESTINATION 元素的指针,其中包含 NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY 结构及其所有元素。
言论
可扩展交换机扩展可以使用数据包 NET_BUFFER_LIST 结构中的目标端口执行以下作:
-
在可扩展交换机上查询数据包将转发到的当前目标端口。
可扩展交换机扩展调用 GetNetBufferListDestinations 函数以获取数据包的端口目标数组。 GetNetBufferListDestinations 返回指向 Destinations 参数中的 NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY 结构的指针。
有关详细信息,请参阅 查询数据包的可扩展交换机目标端口数据。
-
添加或修改数据包的目标端口。
在查询数据包的当前目标端口后,可扩展交换机扩展可以执行以下作:
- 转发扩展可以将新的目标端口添加到 NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY 结构。
-
筛选或转发扩展可以修改目标端口 NDIS_SWITCH_PORT_DESTINATION 结构中的数据。
注释 筛选扩展只能更改此结构的 IsExcluded 成员。 转发扩展还可以更改 preserveVLAN ,并 PreservePriority 成员。
有关详细信息,请参阅 管理 Hyper-V 可扩展交换机目标端口数据。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | NDIS 6.30 及更高版本中受支持。 |
标头 | ndis.h (包括 Ndis.h) |
另请参阅
向数据包 添加可扩展交换机目标端口数据
NDIS_SWITCH_PORT_DESTINATION_AT_ARRAY_INDEX
Hyper-V 可扩展交换机 的 概述