NDIS_SWITCH_SET_NET_BUFFER_LIST_SOURCE回调函数 (ndis.h)

SetNetBufferListSource 函数为 NET_BUFFER_LIST 结构指定的数据包设置 Hyper-V 可扩展交换机源端口标识符和网络适配器索引。

语法

NDIS_SWITCH_SET_NET_BUFFER_LIST_SOURCE NdisSwitchSetNetBufferListSource;

NDIS_STATUS NdisSwitchSetNetBufferListSource(
  [in] NDIS_SWITCH_CONTEXT NdisSwitchContext,
       PNET_BUFFER_LIST NetBufferList,
  [in] NDIS_SWITCH_PORT_ID PortId,
  [in] NDIS_SWITCH_NIC_INDEX NicIndex
)
{...}

参数

[in] NdisSwitchContext

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

NetBufferList

指向单个数据包的 NET_BUFFER_LIST 结构的指针。

注意 此结构必须包含一个可扩展的交换机转发上下文,该上下文以前是通过调用 AllocateNetBufferListForwardingContext 函数分配的。 有关可扩展交换机转发上下文的详细信息,请参阅 Hyper-V 可扩展交换机转发上下文
 

[in] PortId

一个NDIS_SWITCH_PORT_ID值,该值指定可扩展交换机上源端口的唯一标识符。

[in] NicIndex

一个NDIS_SWITCH_NIC_INDEX值,该值指定连接到由 PortId 参数指定的可扩展交换机端口的网络适配器的索引。

有关NDIS_SWITCH_NIC_INDEX值的详细信息,请参阅 网络适配器索引值

注意 此参数必须指定处于连接状态的网络适配器的索引值。 无法指定处于已创建或断开连接状态的网络适配器的索引值。 有关网络连接状态的详细信息,请参阅 Hyper-V 可扩展交换机端口和网络适配器状态
 

返回值

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

言论

可扩展交换机扩展调用 SetNetBufferListSource 函数,以在数据包的 NET_BUFFER_LIST 结构中设置源端口标识符和网络适配器索引。 该扩展针对以下类型的数据包执行此作:

在这两种情况下,新的或重复的数据包将使其源端口标识符设置为 NDIS_SWITCH_DEFAULT_PORT_ID,其源网络适配器索引设置为 NDIS_SWITCH_DEFAULT_NIC_INDEX。 该扩展调用 SetNetBufferListSource 函数,以更改数据包 NET_BUFFER_LIST 结构中的源端口标识符和网络适配器索引。

例如,信任具有源端口标识符 NDIS_SWITCH_DEFAULT_PORT_ID 的数据包,并绕过许多可扩展的交换机端口策略。 这些策略包括访问控制列表(ACL)和服务质量(QoS)。 如果扩展为数据包指定了非默认源端口,则允许将该端口的策略应用于数据包。

注意 由于源端口标识符为 NDIS_SWITCH_DEFAULT_PORT_ID 的数据包受信任,因此扩展在源自数据包流量时必须非常小心地使用此源端口标识符。 有关建议对源端口使用 NDIS_SWITCH_DEFAULT_PORT_ID 的详细信息,请参阅 管理 Hyper-V 可扩展交换机源端口数据
 
有关数据包发送和接收作的详细信息,请参阅 筛选器模块发送和接收作

要求

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

另请参阅

AllocateNetBufferListForwardingContext

NET_BUFFER

NET_BUFFER_LIST

NdisAllocateCloneNetBufferList

NdisFGetOptionalSwitchHandlers