FWPS_VSWITCH_FILTER_ENGINE_REORDER_CALLBACK0回调函数 (fwpsk.h)
筛选器引擎调用 vSwitchFilterEngineReorderNotifyRn (FWPS_VSWITCH_FILTER_ENGINE_REORDER_CALLBACK0) 标注函数,以通知标注驱动程序与虚拟交换机筛选器引擎重新排序相关的事件。
语法
FWPS_VSWITCH_FILTER_ENGINE_REORDER_CALLBACK0 FwpsVswitchFilterEngineReorderCallback0;
NTSTATUS FwpsVswitchFilterEngineReorderCallback0(
[in, optional] void *notifyContext,
[in] void *completionContext,
[in] BOOLEAN isInRequiredPosition,
[in] const NDIS_ENUM_FILTERS *vSwitchExtensionLwfList
)
{...}
参数
[in, optional] notifyContext
指向标注驱动程序提供的上下文的指针。 驱动程序将此指针传递给 FwpsvSwitchEventsSubscribe0 函数的 notifyContext 参数。 此参数是可选的,可以为 NULL。
[in] completionContext
指向标注驱动程序提供的完成上下文的指针。 此参数是可选的,可以为 NULL。
[in] isInRequiredPosition
一个 BOOLEAN 值,如果筛选器位于筛选器堆栈中的所需位置,则设置为 TRUE;否则设置为 FALSE。
[in] vSwitchExtensionLwfList
指定虚拟交换机扩展 NDIS 筛选器驱动程序列表的 NDIS_ENUM_FILTERS 结构。
返回值
标注的
FWPS_VSWITCH_FILTER_ENGINE_REORDER_CALLBACK0 函数返回以下 NTSTATUS 代码之一。
返回代码 | 说明 |
---|---|
|
标注驱动程序接受来自筛选器引擎的通知。 |
|
出现了错误。 |
注解
标注驱动程序注册
vSwitchFilterEngineReorderNotifyRn 函数通过调用
FwpsvSwitchEventsSubscribe0 函数。
默认情况下,WFP 虚拟交换机扩展定位为虚拟交换机入口处的第一个筛选扩展。 (因此,它也是虚拟交换机出口) 的最后一个扩展。 这通常是最佳位置,因为 WFP 扩展可以在任何其他扩展在入口处修改数据包之前截获数据包。 此外,在出口处完成所有数据包修改后,WFP 扩展可以截获数据包。
但是,由于管理员可以对同一类的任何虚拟交换机扩展重新排序,因此 WFP 扩展可以从默认位置重新排序。 重新排序发生后,可能会绕过 WFP 客户端的筛选器,并且可能需要进行调整。
如果注册了 vSwitchFilterEngineReorderNotifyRn 回调,则会在发生虚拟交换机重新排序时通知标注驱动程序。 标注驱动程序接收 NDIS_ENUM_FILTERS 结构,其中包含 vSwitchExtensionLwfList 参数中当前虚拟交换机扩展的有序列表。
如果虚拟交换机扩展已重新排序,则 WFP 扩展暂停 (请参阅 FilterPause) 并重启 (请参阅 FilterRestart) 。 从 WFP 筛选器 FilterRestart 调用中,WFP 筛选器驱动程序调用 NdisEnumerateFilterModules 函数以获取虚拟交换机扩展筛选器的有序列表。 如果 WFP 扩展不在默认位置,则筛选器驱动程序会通知标注驱动程序。
标注驱动程序无法从 vSwitchFilterEngineReorderNotifyRn 返回STATUS_PENDING。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 从Windows 8开始可用。 |
目标平台 | Windows |
标头 | fwpsk.h (包括 Fwpsk.h) |
IRQL | <= DISPATCH_LEVEL |
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈