Função FwpmConnectionPolicyAdd0 (fwpmk.h)

A função FwpmConnectionPolicyAdd0API configura políticas de roteamento para conexões de saída.

Sintaxe

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
);

Parâmetros

[in] engineHandle

Um identificador para uma sessão aberta com o mecanismo de filtro. Para abrir uma sessão com o mecanismo de filtro, chame FwpmEngineOpen0.

[in] connectionPolicy

O estado associado a um contexto de provedor.

[in] ipVersion

Versão ip do tráfego.

[in] weight

Especifica o peso que esse TIA (Trusted Intermediary Agent) deve receber em comparação com todos os pares.

[in] numFilterConditions

O número de elementos em filterConditions.

[in, reads(numFilterConditions)] filterConditions

Uma condição de filtro que deve ser verdadeira para que a ação seja tomada.

Das possíveis condições de correspondência (consulte Identificadores de condição de filtragem), as da lista a seguir têm suporte FwpmConnectionPolicyAdd0. Defina esses valores em 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

As informações de segurança.

Valor de retorno

Código/valor de retorno Descrição
ERROR_SUCCESS
0
A política de roteamento foi configurada com êxito.
FWP_E_* código de erro
0x80320001 — 0x80320039
Um erro específico da Plataforma de Filtragem do Windows (WFP). Consulte de códigos de erro do WFP para obter detalhes.
código de erro RPC_*
0x80010001 — 0x80010122
Falha ao se comunicar com o mecanismo de firewall local ou remoto.
outros códigos NTSTATUS Ocorreu um erro.

Observações

A pilha TCP/IP dá suporte ao roteamento baseado em endereço de destino para conexões de saída. O FwpmConnectionPolicyAdd0API permite configurar políticas de roteamento mais expressivas para conexões de saída e, assim, habilitar cenários mais complexos, como roteamento baseado em endereço de origem, roteamento baseado em processo, roteamento baseado em porta e outros. Uma política de conexão consiste em uma matriz de condições de correspondência, uma matriz de configurações de rota e um peso associado. Você pode configurar várias políticas e elas são avaliadas com base em seus pesos configurados para uma conexão de saída (um peso maior tem precedência). A configuração de rota da primeira política cujas condições (ANDed) correspondem à conexão de saída é aplicada.

Estas são as configurações de rota com suporte (consulte FWP_NETWORK_CONNECTION_POLICY_SETTING_TYPE):

FWP_NETWORK_CONNECTION_POLICY_SOURCE_ADDRESS. O endereço de origem a ser usado para a conexão. O valor deve ser um FWP_UINT32 para um endereço IPv4 e um FWP_BYTE_ARRAY16_TYPE para um endereço IPv6.

FWP_NETWORK_CONNECTION_POLICY_NEXT_HOP_INTERFACE. O LUID da interface de saída a ser usada para a conexão. O valor deve ser um FWP_UINT64.

FWP_NETWORK_CONNECTION_POLICY_NEXT_HOP. O endereço nexthop (ou gateway) a ser usado para a conexão. O valor deve ser um FWP_UINT32 para um endereço IPv4 e um FWP_BYTE_ARRAY16_TYPE para um endereço IPv6.

Requisitos

Requisito Valor
de cliente com suporte mínimo Disponível a partir do Windows Vista.
da Plataforma de Destino Universal
cabeçalho fwpmk.h
biblioteca fwpkclnt.lib
IRQL <= PASSIVE_LEVEL

Consulte também