FwpmConnectionPolicyAdd0 函数 (fwpmk.h)
FwpmConnectionPolicyAdd0API 函数配置出站连接的路由策略。
语法
NTSTATUS FwpmConnectionPolicyAdd0(
[in] HANDLE engineHandle,
[in] const FWPM_PROVIDER_CONTEXT3 *connectionPolicy,
[in] FWP_IP_VERSION ipVersion,
[in] UINT64 weight,
[in] UINT32 numFilterConditions,
[in, reads(numFilterConditions)] const FWPM_FILTER_CONDITION0 *filterConditions,
[in, optional] PSECURITY_DESCRIPTOR sd
);
参数
[in] engineHandle
使用筛选器引擎打开会话的句柄。 若要打开与筛选器引擎的会话,请调用 FwpmEngineOpen0。
[in] connectionPolicy
与提供程序上下文关联的状态。
[in] ipVersion
流量的 IP 版本。
[in] weight
指定此受信任的中介代理(TIA)应与任何对等方进行比较的权重。
[in] numFilterConditions
filterConditions中
[in, reads(numFilterConditions)] filterConditions
一个筛选器条件,对于要执行的操作必须为 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
[in, optional] sd
安全信息。
返回值
返回代码/值 | 描述 |
---|---|
ERROR_SUCCESS 0 |
已成功配置路由策略。 |
FWP_E_* 错误代码 0x80320001 — 0x80320039 |
Windows 筛选平台(WFP)特定错误。 有关详细信息,请参阅 WFP 错误代码。 |
RPC_* 错误代码 0x80010001 — 0x80010122 |
无法与远程或本地防火墙引擎通信。 |
其他 NTSTATUS 代码 | 发生错误。 |
言论
TCP/IP 堆栈支持出站连接的基于目标地址的路由。 FwpmConnectionPolicyAdd0API 允许为出站连接配置更具表现力的路由策略,从而启用更复杂的方案,例如基于源地址的路由、基于进程的路由、基于端口的路由等。 连接策略由匹配条件数组、路由设置数组和关联的权重组成。 可以配置多个策略,并根据为出站连接配置的权重来评估这些策略(权重较高优先)。 应用条件(ANDed)与出站连接匹配的第一个策略的路由设置。
这些是受支持的路由设置(请参阅 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。 用于连接的 nexthop 地址(或网关)。 该值应为 IPv4 地址的 FWP_UINT32,以及 IPv6 地址的 FWP_BYTE_ARRAY16_TYPE。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | 从 Windows Vista 开始可用。 |
目标平台 | 普遍 |
标头 | fwpmk.h |
库 | fwpkclnt.lib |
IRQL | <= PASSIVE_LEVEL |