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


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

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

Возможные условия соответствия (см. идентификаторы условий фильтрации), которые в следующем списке поддерживаются 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 (МПП). Дополнительные сведения см. в кодов ошибок МПП.
код ошибки RPC_*
0x80010001 — 0x80010122
Не удаляйте связь с подсистемой удаленного или локального брандмауэра.
другие коды NTSTATUS Произошла ошибка.

Замечания

Стек TCP/IP поддерживает маршрутизацию на основе адресов назначения для исходящих подключений. FwpmConnectionPolicyAdd0API позволяет настроить более экспрессивные политики маршрутизации для исходящих подключений, а также обеспечить более сложные сценарии, такие как маршрутизация на основе исходного адреса, маршрутизация на основе процессов, маршрутизация на основе портов и другие. Политика подключения состоит из массива условий соответствия, массива параметров маршрута и связанного веса. Можно настроить несколько политик и оценить их на основе настроенных весов для исходящего подключения (более высокий вес имеет приоритет). Параметр маршрута первой политики, условия которой (ANDed) соответствует исходящему подключению.

Это поддерживаемые параметры маршрута (см. 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-адреса.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Доступно начиная с Windows Vista.
целевая платформа Всеобщий
заголовка fwpmk.h
библиотеки fwpkclnt.lib
IRQL <= PASSIVE_LEVEL

См. также