NDIS_SWITCH_GROW_NET_BUFFER_LIST_DESTINATIONS回调函数 (ndis.h)

GrowNetBufferListDestinations 函数为其他 Hyper-V 可扩展交换机目标端口添加空间,该数据包由 NET_BUFFER_LIST 结构指定。

语法

NDIS_SWITCH_GROW_NET_BUFFER_LIST_DESTINATIONS NdisSwitchGrowNetBufferListDestinations;

NDIS_STATUS NdisSwitchGrowNetBufferListDestinations(
  [in]  NDIS_SWITCH_CONTEXT NdisSwitchContext,
        PNET_BUFFER_LIST NetBufferList,
  [in]  UINT32 NumberOfNewDestinations,
  [out] PNDIS_SWITCH_FORWARDING_DESTINATION_ARRAY *Destinations
)
{...}

参数

[in] NdisSwitchContext

一个NDIS_SWITCH_CONTEXT值,该值包含 Hyper-V 可扩展交换机扩展所附加到的可扩展交换机模块的句柄。 当扩展调用 NdisFGetOptionalSwitchHandlers 时,将通过 NdisSwitchContext 参数返回此句柄。

NetBufferList

指向 NET_BUFFER_LIST 结构链接列表的指针。

注意 此结构必须包含可扩展的交换机转发上下文。 如果扩展创建或克隆了数据包,则它之前必须通过调用 AllocateNetBufferListForwardingContext 函数来分配此结构。 有关可扩展交换机转发上下文的详细信息,请参阅 Hyper-V 可扩展交换机转发上下文
 

[in] NumberOfNewDestinations

一个 UINT32 值,该值指定要为数据包添加的新目标端口数。

[out] Destinations

指向 NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY 结构的指针。 此结构指定数据包的可扩展交换机目标端口。

返回值

如果调用成功,函数将返回NDIS_STATUS_SUCCESS。 否则,它将返回在 Ndis.h 中定义的 NDIS_STATUS_Xxx 错误代码。

注解

可扩展交换机扩展调用 GrowNetBufferListDestinations 函数,为数据包的目标端口添加空间。 端口目标通过 NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY 结构指定。

有关如何将目标端口添加到数据包的详细信息,请参阅 将可扩展交换机目标端口数据添加到数据包

注意 如果 NetBufferList 参数包含指向多个 NET_BUFFER_LIST 结构的链接列表的指针,则其他目标端口的空间只会添加到列表中的第一 个NET_BUFFER_LIST 结构。
 

要求

要求
最低受支持的客户端 在 NDIS 6.30 及更高版本中受支持。
目标平台 桌面
标头 ndis.h (包括 Ndis.h)
IRQL <= DISPATCH_LEVEL

另请参阅

AllocateNetBufferListForwardingContext

NDIS_SWITCH_FORWARDING_DESTINATION_ARRAY

NDIS_SWITCH_PORT_DESTINATION

NET_BUFFER

NET_BUFFER_LIST

NdisFGetOptionalSwitchHandlers

UpdateNetBufferListDestinations