Partager via


Fonction FwpmConnectionPolicyAdd0 (fwpmu.h)

La pile TCP/IP prend en charge le routage basé sur l’adresse de destination pour les connexions sortantes. FwpmConnectionPolicyAdd0API vous permet de configurer des stratégies de routage plus expressives pour les connexions sortantes, et ainsi d’activer des scénarios plus complexes tels que le routage basé sur l’adresse source, le routage basé sur les processus, le routage basé sur le port, etc. Une stratégie de connexion se compose d’un tableau de conditions de correspondance, d’un tableau de paramètres d’itinéraire et d’un poids associé. Vous pouvez configurer plusieurs stratégies et elles sont évaluées en fonction de leurs pondérations configurées pour une connexion sortante (un poids plus élevé est prioritaire). Le paramètre d’itinéraire de la première stratégie dont les conditions (ANDed) correspond à la connexion sortante est appliqué.

Syntaxe

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

Paramètres

engineHandle

Type : _in_ HANDLE

Handle pour une session ouverte avec le moteur de filtre. Pour ouvrir une session avec le moteur de filtre, appelez FwpmEngineOpen0.

connectionPolicy

Type : _In_ const FWPM_PROVIDER_CONTEXT3*

État associé à un contexte de fournisseur.

ipVersion

Type : _In_ FWP_IP_VERSION

Version IP du trafic.

weight

Type : _In_ UINT64

Spécifie le poids que cet agent intermédiaire approuvé (TIA) doit être donné par rapport à tous les homologues.

numFilterConditions

Type : _In_ UINT32

Nombre d’éléments dans filterConditions.

filterConditions

Type : _In_reads_(numFilterConditions) const FWPM_FILTER_CONDITION0*

Condition de filtre qui doit avoir la valeur true pour que l’action soit effectuée.

Parmi les conditions de correspondance possibles (consultez Filtrage des identificateurs de condition), celles de la liste suivante sont prises en charge par FwpmConnectionPolicyAdd0. Définissez ces valeurs dans 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

Type : _In_opt_ PSECURITY_DESCRIPTOR

Informations de sécurité.

Remarques

Voici les paramètres d’itinéraire pris en charge (voir FWP_NETWORK_CONNECTION_POLICY_SETTING_TYPE) :

FWP_NETWORK_CONNECTION_POLICY_SOURCE_ADDRESS. Adresse source à utiliser pour la connexion. La valeur doit être une FWP_UINT32 pour une adresse IPv4 et une FWP_BYTE_ARRAY16_TYPE pour une adresse IPv6.

FWP_NETWORK_CONNECTION_POLICY_NEXT_HOP_INTERFACE. LUID de l’interface sortante à utiliser pour la connexion. La valeur doit être une FWP_UINT64.

FWP_NETWORK_CONNECTION_POLICY_NEXT_HOP. Adresse suivante (ou passerelle) à utiliser pour la connexion. La valeur doit être une FWP_UINT32 pour une adresse IPv4 et une FWP_BYTE_ARRAY16_TYPE pour une adresse IPv6.

Configuration requise

Condition requise Valeur
En-tête fwpmu.h
Bibliothèque Fwpuclnt.lib
DLL Fwpuclnt.dll