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 |