FwpmConnectionPolicyAdd0 函数 (fwpmu.h)

TCP/IP 堆栈支持出站连接的基于目标地址的路由。 FwpmConnectionPolicyAdd0API 允许为出站连接配置更具表现力的路由策略,从而启用更复杂的方案,例如基于源地址的路由、基于进程的路由、基于端口的路由等。 连接策略由匹配条件数组、路由设置数组和关联的权重组成。 可以配置多个策略,并根据出站连接配置的权重来评估这些策略, (权重较高的优先) 。 第一个策略的路由设置,其条件 (ANDed) 与出站连接匹配。

语法

DWORD FwpmConnectionPolicyAdd0(
  HANDLE                       engineHandle,
  const FWPM_PROVIDER_CONTEXT3 *connectionPolicy,
  FWP_IP_VERSION               ipVersion,
  UINT64                       weight,
  UINT32                       numFilterConditions,
  const FWPM_FILTER_CONDITION0 *filterConditions,
  PSECURITY_DESCRIPTOR         sd
);

参数

engineHandle

类型:_In_ HANDLE

使用筛选器引擎打开的会话的句柄。 若要使用筛选器引擎打开会话,请调用 FwpmEngineOpen0

connectionPolicy

类型:_In_ const FWPM_PROVIDER_CONTEXT3*

与提供程序上下文关联的状态。

ipVersion

类型:_In_ FWP_IP_VERSION

流量的 IP 版本。

weight

类型:_In_ UINT64

指定此受信任中介代理 (TIA) 应与任何对等方进行比较的权重。

numFilterConditions

类型:_In_ UINT32

filterConditions 中的元素数。

filterConditions

类型:_In_reads_ (numFilterConditions) const FWPM_FILTER_CONDITION0*

要执行的操作必须为 true 的筛选条件。

对于可能的匹配条件 (请参阅 筛选条件标识符) ,FwpmConnectionPolicyAdd0 支持以下列表中的条件。 在 FWPM_FILTER_CONDITION0::fieldKey 中设置这些值。

  • FWPM_CONDITION_ALE_APP_ID
  • FWPM_CONDITION_ALE_USER_ID
  • FWPM_CONDITION_IP_LOCAL_ADDRESS
  • FWPM_CONDITION_IP_LOCAL_ADDRESS_TYPE
  • FWPM_CONDITION_IP_LOCAL_PORT
  • FWPM_CONDITION_IP_PROTOCOL
  • FWPM_CONDITION_IP_REMOTE_ADDRESS
  • FWPM_CONDITION_IP_DESTINATION_ADDRESS_TYPE
  • FWPM_CONDITION_IP_REMOTE_PORT
  • FWPM_CONDITION_FLAGS
  • FWPM_CONDITION_ALE_ORIGINAL_APP_ID
  • FWPM_CONDITION_ALE_PACKAGE_ID
  • FWPM_CONDITION_COMPARTMENT_ID

sd

类型:_In_opt_ PSECURITY_DESCRIPTOR

安全信息。

注解

以下是支持的路由设置, (请参阅 FWP_NETWORK_CONNECTION_POLICY_SETTING_TYPE) :

FWP_NETWORK_CONNECTION_POLICY_SOURCE_ADDRESS。 要用于连接的源地址。 该值应为 IPv4 地址 的FWP_UINT32 ,以及 IPv6 地址 的FWP_BYTE_ARRAY16_TYPE

FWP_NETWORK_CONNECTION_POLICY_NEXT_HOP_INTERFACE。 要用于连接的传出接口的 LUID。 该值应为 FWP_UINT64

FWP_NETWORK_CONNECTION_POLICY_NEXT_HOP。 下一个hop 地址 (或网关) 用于连接。 该值应为 IPv4 地址 的FWP_UINT32 ,以及 IPv6 地址 的FWP_BYTE_ARRAY16_TYPE

要求

要求
Header fwpmu.h
Library Fwpuclnt.lib
DLL Fwpuclnt.dll