NDIS_SWITCH_REPORT_FILTERED_NET_BUFFER_LISTS回调函数 (ndis.h)

ReportFilteredNetBufferLists 函数报告可扩展交换机扩展从端口传送中删除或排除的一个或多个网络数据包。 每个网络数据包都是通过 NET_BUFFER_LIST 结构定义的。

语法

NDIS_SWITCH_REPORT_FILTERED_NET_BUFFER_LISTS NdisSwitchReportFilteredNetBufferLists;

void NdisSwitchReportFilteredNetBufferLists(
  [in]           NDIS_SWITCH_CONTEXT NdisSwitchContext,
  [in]           PUNICODE_STRING ExtensionGuid,
  [in]           PUNICODE_STRING ExtensionFriendlyName,
  [in]           NDIS_SWITCH_PORT_ID PortId,
  [in]           UINT32 Flags,
  [in]           UINT32 NumberOfNetBufferLists,
  [in]           PNET_BUFFER_LIST NetBufferLists,
  [in, optional] PUNICODE_STRING FilterReason
)
{...}

参数

[in] NdisSwitchContext

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

[in] ExtensionGuid

指向包含扩展 GUID 的 UNICODE_STRING 结构的指针。 NDIS 在 NDIS_FILTER_ATTACH_PARAMETERS 结构的 FilterModuleGuidName 成员中指定此 GUID。 NDIS 在调用扩展的 FilterAttach 函数时,在 AttachParameters 参数中传递指向此结构的指针。

[in] ExtensionFriendlyName

指向包含扩展的用户友好名称 的UNICODE_STRING 结构的指针。 此名称由扩展的 INF 文件的 AddService 指令中的 DisplayName 条目定义。

[in] PortId

指定可扩展交换机端口的NDIS_SWITCH_PORT_ID值。 有关详细信息,请参见“备注”部分。

[in] Flags

UINT32 值。 指定NDIS_SWITCH_REPORT_FILTERED_NBL_FLAGS_IS_INCOMING标志时,它指示 PortId 成员定义丢弃的数据包的源。 如果未指定,则 PortId 成员定义目标可扩展交换机端口。 有关详细信息,请参见“备注”部分。

[in] NumberOfNetBufferLists

包含 NetBufferLists 参数指定的NET_BUFFER_LIST结构数的 UINT32 值。

[in] NetBufferLists

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

[in, optional] FilterReason

指向 UNICODE_STRING 结构的指针,该结构包含有关丢弃或排除数据包的原因的用户友好说明。 有关详细信息,请参见“备注”部分。

返回值

备注

当扩展排除数据包传递到可扩展交换机端口时,它必须调用 ReportFilteredNetBufferLists。 调用此函数时,可扩展交换机模块会递增计数器,并记录已删除或排除的数据包的事件。 当它记录丢弃或排除的数据包集的事件时,可扩展交换机模块使用 FilterReason 参数指定的用户友好说明。

该扩展可以通过以下方式排除数据包的传递:

扩展在调用 ReportFilteredNetBufferLists 时必须遵循以下准则:
  • NetBufferLists 参数指定NET_BUFFER_LIST结构的链接列表。 这些结构指定的所有数据包都必须从同一端口接收或发送到同一端口,并且出于相同原因被删除或排除。
  • 如果由于基于源端口的策略而丢弃数据包,则必须指定NDIS_SWITCH_REPORT_FILTERED_NBL_FLAGS_IS_INCOMING标志。 扩展还必须将 PortId 参数设置为从中接收数据包的端口的标识符。
  • 如果由于基于目标端口的策略而删除数据包,则不能指定NDIS_SWITCH_REPORT_FILTERED_NBL_FLAGS_IS_INCOMING标志。 扩展还必须将 PortId 参数设置为数据包要发送到的端口的标识符。

要求

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

另请参阅

FilterAttach

INF AddService 指令

NDIS_FILTER_ATTACH_PARAMETERS

NDIS_SWITCH_PORT_DESTINATION

NET_BUFFER_LIST

NdisFGetOptionalSwitchHandlers

UNICODE_STRING