FWPS_FILTER1 结构 (fwpstypes.h)
FWPS_FILTER1 结构在筛选器引擎中定义运行时筛选器。 FWPS_FILTER0 可用。
语法
typedef struct FWPS_FILTER1_ {
UINT64 filterId;
FWP_VALUE0 weight;
UINT16 subLayerWeight;
UINT16 flags;
UINT32 numFilterConditions;
FWPS_FILTER_CONDITION0 *filterCondition;
FWPS_ACTION0 action;
UINT64 context;
FWPM_PROVIDER_CONTEXT1 *providerContext;
} FWPS_FILTER1;
成员
filterId
一个运行时标识符,用于标识筛选器引擎中的筛选器。
weight
一个FWP_VALUE0结构,其中包含一个值,该值指定筛选器相对于筛选器引擎中其他筛选器的重要性。 首先调用 权重 值较高的筛选器。 FWP_VALUE0 结构中指定的数据类型为FWP_UINT64或FWP_EMPTY。 如果 FWP_VALUE0 结构中指定的数据类型FWP_EMPTY,则筛选器引擎会根据筛选器测试数据与筛选器引擎中其他筛选器的具体程度自动为筛选器分配权重。
subLayerWeight
一个 值,该值指定筛选器子层相对于筛选器引擎中其他子层的重要性。 首先调用位于子层中具有较高 subLayerWeight 值的筛选器 。
flags
指定标注的 分类Fn1 标注函数在处理网络数据时应执行的操作的标志。 可能的标志包括:
值 | 含义 |
---|---|
FWPS_FILTER_FLAG_CLEAR_ACTION_RIGHT | 此标志向标注的 分类Fn0 标注函数指示,当标注返回建议操作的FWP_ACTION_BLOCK或FWP_ACTION_PERMIT时,它应始终清除FWPS_RIGHT_ACTION_WRITE标志。 如果未设置此标志,则标注的 分类Fn0 标注函数应仅在返回建议操作FWP_ACTION_BLOCK时清除FWPS_RIGHT_ACTION_WRITE标志。 |
FWPS_FILTER_FLAG_PERMIT_IF_CALLOUT_UNREGISTERED | 此标志向标注的 分类Fn0 标注函数指示,如果未注册标注,则应将标注视为允许筛选器。 |
numFilterConditions
filterCondition 成员指向的数组中的FWPS_FILTER_CONDITION0结构数。 此成员可以为零。
filterCondition
指向 FWPS_FILTER_CONDITION0 结构的数组的指针。 这些结构定义筛选器的运行时筛选条件。 如果 numFilterConditions 成员为零,则此指针将为 NULL。
action
一个FWPS_ACTION0结构,指定在筛选器的所有筛选条件都为 true 时筛选器应采取的操作。
context
与筛选器关联的上下文值。 将筛选器添加到筛选器引擎时,标注可以将此成员设置为从标注驱动程序的 notifyFn1 标注函数中指向标注驱动程序提供的上下文结构。 此上下文结构对于筛选器引擎不透明,可由标注驱动程序的 分类Fn1 标注函数使用,以保留筛选器引擎对标注驱动程序分类 Fn1 标注函数的调用之间的任何特定于驱动程序的数据或状态信息。
providerContext
指向提供程序上下文的指针,该上下文的格式设置为 FWPM_PROVIDER_CONTEXT1 结构。 如果筛选器使用标注,并且标注设置了FWPM_CALLOUT_FLAG_USES_PROVIDER_CONTEXT标志,则此成员将包含来自相应 FWPM_FILTER0 结构的提供程序上下文。 否则,此参数为 NULL。
注解
筛选器引擎将指向 FWPS_FILTER1 结构的指针传递到标注的 notifyFn1 和 分类 Fn1 标注函数。
仅当筛选器的所有筛选条件都为 true 时,才会执行筛选器的操作。 如果未在筛选器中指定筛选条件,则始终执行指定的操作。
ProviderContext 成员为标注驱动程序提供了一种机制,用于检索提供程序上下文,而无需 (BFE) 调用基本筛选引擎。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 从 Windows 7 开始可用。 |
标头 | fwpstypes.h (包括 Fwpsk.h) |