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 结构的指针。
[in] PortId
一个NDIS_SWITCH_PORT_ID值,该值指定可扩展交换机上源端口的唯一标识符。
[in] NicIndex
一个NDIS_SWITCH_NIC_INDEX值,该值指定连接到由 PortId 参数指定的可扩展交换机端口的网络适配器的索引。
有关NDIS_SWITCH_NIC_INDEX值的详细信息,请参阅 网络适配器索引值。
返回值
如果调用成功,该函数将返回NDIS_STATUS_SUCCESS。 否则,它将返回在 Ndis.h 中定义的 NDIS_STATUS_Xxx 错误代码。
言论
可扩展交换机扩展调用 SetNetBufferListSource 函数,以在数据包的 NET_BUFFER_LIST 结构中设置源端口标识符和网络适配器索引。 该扩展针对以下类型的数据包执行此作:
-
扩展为发送或接收作分配的新数据包。
注释 扩展调用已分配数据包 SetNetBufferListSource 之前,它必须调用 AllocateNetBufferListForwardingContext。
- 扩展从要筛选的原始数据包克隆的重复数据包。 该扩展通过调用 NdisAllocateCloneNetBufferList复制数据包。
例如,信任具有源端口标识符 NDIS_SWITCH_DEFAULT_PORT_ID 的数据包,并绕过许多可扩展的交换机端口策略。 这些策略包括访问控制列表(ACL)和服务质量(QoS)。 如果扩展为数据包指定了非默认源端口,则允许将该端口的策略应用于数据包。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | NDIS 6.30 及更高版本中受支持。 |
目标平台 | 桌面 |
标头 | ndis.h (包括 Ndis.h) |
IRQL | <= DISPATCH_LEVEL |
另请参阅
AllocateNetBufferListForwardingContext