Поделиться через


Функция 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*

Условие фильтра, которое должно быть верным для выполняемого действия.

Из возможных условий соответствия (см. раздел Идентификаторы условий фильтрации) следующие условия поддерживаются 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. Исходный адрес, используемый для подключения. Значение должно быть FWP_UINT32 для IPv4-адреса и FWP_BYTE_ARRAY16_TYPE для IPv6-адреса.

FWP_NETWORK_CONNECTION_POLICY_NEXT_HOP_INTERFACE. LUID исходящего интерфейса, используемого для подключения. Значение должно быть FWP_UINT64.

FWP_NETWORK_CONNECTION_POLICY_NEXT_HOP. Адрес следующего перехвата (или шлюз), используемый для подключения. Значение должно быть FWP_UINT32 для IPv4-адреса и FWP_BYTE_ARRAY16_TYPE для IPv6-адреса.

Требования

Требование Значение
Заголовок fwpmu.h
Библиотека Fwpuclnt.lib
DLL Fwpuclnt.dll