FWPM_FILTER0 结构 (fwpmtypes.h)

FWPM_FILTER0结构存储与筛选器关联的状态。

语法

typedef struct FWPM_FILTER0_ {
  GUID                   filterKey;
  FWPM_DISPLAY_DATA0     displayData;
  UINT32                 flags;
  GUID                   *providerKey;
  FWP_BYTE_BLOB          providerData;
  GUID                   layerKey;
  GUID                   subLayerKey;
  FWP_VALUE0             weight;
  UINT32                 numFilterConditions;
  FWPM_FILTER_CONDITION0 *filterCondition;
  FWPM_ACTION0           action;
  union {
    UINT64 rawContext;
    GUID   providerContextKey;
  };
  GUID                   *reserved;
  UINT64                 filterId;
  FWP_VALUE0             effectiveWeight;
} FWPM_FILTER0;

成员

filterKey

唯一标识会话。

如果在调用 FwpmFilterAdd0 时将 GUID 初始化为零,则基本筛选引擎 (BFE) 将生成一个。

displayData

一个 FWPM_DISPLAY_DATA0 结构,其中包含与筛选器关联的可读注释。 需要FWPM_DISPLAY_DATA0结构的名称成员。

flags

以下值的组合。

筛选器标志 含义
**FWPM_FILTER_FLAG_NONE**
默认。
**FWPM_FILTER_FLAG_PERSISTENT**
筛选器是永久性的,也就是说,它在 BFE 停止/启动中幸存下来。
**注意** 此标志不能与 **FWPM_FILTER_FLAG_BOOTTIME** 一起设置。
 
**FWPM_FILTER_FLAG_BOOTTIME**
即使在 BFE 启动之前,也会在启动时强制实施筛选器。
**注意** 此标志不能与 **FWPM_FILTER_FLAG_PERSISTENT** 一起设置。
 
**FWPM_FILTER_FLAG_HAS_PROVIDER_CONTEXT**
筛选器引用提供程序上下文。
**FWPM_FILTER_FLAG_CLEAR_ACTION_RIGHT**
右侧清除筛选器操作。
**FWPM_FILTER_FLAG_PERMIT_IF_CALLOUT_UNREGISTERED**
如果未注册标注,筛选器将被视为允许筛选器。
**注意** 仅当“action”类型为“FWP_ACTION_CALLOUT_TERMINATING”或“FWP_ACTION_CALLOUT_UNKNOWN”时,才能设置此标志。
 
**FWPM_FILTER_FLAG_DISABLED**
筛选器已禁用。 如果提供程序没有关联的 Windows 服务名称,或者关联的服务未设置为自动启动,则当 BFE 启动时,将禁用提供程序的筛选器。
**注意** 添加新筛选器时,无法设置此标志。 它只能在获取或枚举筛选器时由 BFE 返回。
 
**FWPM_FILTER_FLAG_INDEXED**
筛选器已编制索引,以帮助在分类过程中更快地查找。
**注意** 仅适用于 Windows 8 和 Windows Server 2012。
 

providerKey

管理此筛选器的策略提供程序的可选 GUID。 有关预定义策略提供程序的列表,请参阅 内置提供程序标识符

providerData

个FWP_BYTE_BLOB 结构,其中包含提供程序用于存储对象的其他上下文信息的可选提供程序特定数据。

layerKey

筛选器所在的层的 GUID。 有关可能值的列表,请参阅 筛选层标识符

subLayerKey

筛选器所在的子层的 GUID。 有关内置子层的列表 ,请参阅筛选 Sub-Layer 标识符

如果此项设置为 IID_NULL,则筛选器将添加到默认子图层。

weight

指定筛选器权重 的FWP_VALUE0 结构。 权重指示筛选器的优先级,其中编号较高的权重具有较高的优先级 (,并将在权重较低的筛选器) 之前进行评估。

权重的可能类型值如下所示。

**weight** 类型 含义
**FWP_UINT64**
BFE 将使用提供的值作为筛选器的权重。
**FWP_UINT8**
0–15
BFE 将使用提供的值作为权重范围索引,并计算筛选器在该范围内的权重。 有关详细信息 ,请参阅筛选器权重分配
**FWP_EMPTY**
BFE 将根据筛选条件自动分配权重。

有关可用于计算 筛选器权重 的内置常量,请参阅筛选器权重标识符。

numFilterConditions

筛选条件数。

filterCondition

包含所有筛选条件 的FWPM_FILTER_CONDITION0 结构的数组。 要执行的操作必须全部为 true。 换句话说,使用 AND 运算符计算条件。 如果未指定任何条件,则始终执行该操作。

**注意** 在 Windows 7 和 Windows Server 2008 R2 中,将使用 OR 运算符评估具有相同字段键的连续条件。
 

action

一个FWPM_ACTION0结构,指定要在所有筛选条件都为 true 时执行的操作。

rawContext

当筛选器没有提供程序上下文信息时可用,即 标志 不包含 FWPM_FILTER_FLAG_HAS_PROVIDER_CONTEXT。 有关内置可能值的列表,请参阅 筛选上下文标识符

rawContext 按原样放置在相应FWPS_FILTER0结构的上下文成员中,该结构记录在 WDK 中。

providerContextKey

筛选器具有提供程序上下文信息时可用,即 标志 包含 FWPM_FILTER_FLAG_HAS_PROVIDER_CONTEXT。 有关预定义策略 提供程序上下文 的列表,请参阅内置提供程序上下文标识符。

providerContextKey 指定的提供程序上下文的 LUID 用于填充相应FWPS_FILTER0结构的上下文成员,该结构记录在 WDK 中。

reserved

预留给系统使用。

filterId

标识筛选器的 LUID。 这也是 WDK 中记录的相应 FWPS_FILTER0 结构的 LUID。

effectiveWeight

一个FWP_VALUE0结构,包含分配给FWPS_FILTER0的权重,WDK 中记录了该权重。

注解

此结构的前十个成员包含添加对象时提供的信息。

最后一个成员 filterIdeffectiveWeight 在获取/枚举对象时提供其他信息。

FWPM_FILTER0 是FWPM_FILTER的特定实现。 有关详细信息 ,请参阅 WFP Version-Independent 名称和面向 Windows 的特定版本

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
标头 fwpmtypes.h

另请参阅

FWPM_ACTION0

FWPM_DISPLAY_DATA0

FWPM_FILTER_CONDITION0

FWP_VALUE0

筛选器权重分配

筛选器权重标识符

Windows 筛选平台 API 结构