structure FWPS_CALLOUT2 (fwpsk.h)

La structure FWPS_CALLOUT2 définit les données requises pour qu’un pilote de légende inscrive une légende auprès du moteur de filtre.

NotezFWPS_CALLOUT2 est la version spécifique de FWPS_CALLOUT utilisée dans Windows 8 et versions ultérieures. Pour plus d’informations , voir PAM Version-Independent noms et Ciblage de versions spécifiques de Windows . Pour Windows 7, FWPS_CALLOUT1 est disponible. Pour Windows Vista, FWPS_CALLOUT0 est disponible.

 

Syntaxe

typedef struct FWPS_CALLOUT2_ {
  GUID                                calloutKey;
  UINT32                              flags;
  FWPS_CALLOUT_CLASSIFY_FN2           classifyFn;
  FWPS_CALLOUT_NOTIFY_FN2             notifyFn;
  FWPS_CALLOUT_FLOW_DELETE_NOTIFY_FN0 flowDeleteFn;
} FWPS_CALLOUT2;

Membres

calloutKey

GUID défini par un pilote de légende qui identifie de manière unique la légende.

flags

Indicateurs qui spécifient des paramètres spécifiques aux légendes. Les indicateurs possibles sont les suivants :

Valeur Signification
FWP_CALLOUT_FLAG_CONDITIONAL_ON_FLOW
0x00000001
Un pilote de légende peut spécifier cet indicateur lors de l’inscription d’une légende qui sera ajoutée à une couche qui prend en charge les flux de données. Si cet indicateur est spécifié, le moteur de filtre appelle la fonction de légende classifyFn2 du pilote de légende uniquement si un contexte est associé au flux de données. Un pilote de légende associe un contexte à un flux de données en appelant la fonction FwpsFlowAssociateContext0 .
FWP_CALLOUT_FLAG_ALLOW_OFFLOAD
0x00000002
Un pilote de légende spécifie cet indicateur pour indiquer que la fonction de légende classifiableFn2 du pilote de légende n’est pas affectée par le déchargement du traitement des données réseau sur des cartes d’interface réseau compatibles avec le déchargement. Si cet indicateur n’est pas spécifié, le déchargement du traitement des données réseau est désactivé pour tout le trafic traité par les filtres qui spécifient la légende pour l’action du filtre.
FWP_CALLOUT_FLAG_ENABLE_COMMIT_ADD_NOTIFY
0x00000004
Un pilote de légende spécifie cet indicateur pour indiquer qu’il peut recevoir des notifications sur les objets et filtres ajoutés à l’intérieur d’une transaction. Le moteur de filtre envoie la notification une fois la transaction validée.
FWP_CALLOUT_FLAG_ALLOW_MID_STREAM_INSPECTION
0x00000008
Un pilote de légende spécifie cet indicateur pour indiquer qu’il peut effectuer une inspection dynamique des flux de données au niveau du flux. Consultez inspection Stream.
FWP_CALLOUT_FLAG_ALLOW_RECLASSIFY
0x00000010
Un pilote de légende spécifie cet indicateur pour s’inscrire lui-même à appeler lorsqu’une opération de socket existante est reclassifiée.
FWP_CALLOUT_FLAG_RESERVED1
0x00000020
Réservé pour le système. Les pilotes de légende doivent ignorer cet indicateur.
FWP_CALLOUT_FLAG_ALLOW_RSC
0x00000040
Un pilote de légende spécifie cet indicateur pour indiquer que la légende prend en charge la fusion du segment de réception TCP (RSC) avec des paquets volumineux allant jusqu’à 64 000. Si cet indicateur n’est pas spécifié et qu’une légende est inscrite, RSC est désactivé pour tout le trafic traité par les filtres qui spécifient la légende pour l’action du filtre.
FWP_CALLOUT_FLAG_ALLOW_L2_BATCH_CLASSIFY
0x00000080
Un pilote de légende spécifie cet indicateur lors de l’inscription d’une légende qui sera ajoutée à la couche 2, afin d’indiquer que sa fonction de légende classifyFn2 peut classifier plusieurs structures NET_BUFFER_LIST chaînées. Pour plus d’informations, consultez Utilisation du filtrage de couche 2.
Attention  

Si un pilote de légende définit cet indicateur, il ne peut pas utiliser les fonctions suivantes pour modifier NET_BUFFER_LISTs.

Avec cet indicateur défini, FwpsAllocateCloneNetBufferList0 retourne toujours une erreur INVALID_PARAMETER . Cela peut entraîner de manière inattendue l’échec d’un pilote de légende tierce pour gérer le nombre de références de NET_BUFFER_LISTs, entraînant l’arrêt des opérations d’envoi et de réception.

FWP_CALLOUT_FLAG_ALLOW_USO
0x00000100
Un pilote de légende spécifie cet indicateur pour indiquer que la légende prend en charge le déchargement de segmentation UDP (USO) avec des paquets supérieurs à la MTU du support réseau. Si cet indicateur n’est pas spécifié et qu’une légende est inscrite, USO est désactivé pour tout le trafic traité par tous les filtres qui spécifient la légende pour l’action du filtre. Note: La première version sur laquelle cet indicateur est pris en charge est Windows Insider Preview, version 10.0.25876.
FWP_CALLOUT_FLAG_ALLOW_URO
0x00000200
Un pilote de légende spécifie cet indicateur pour indiquer que la légende prend en charge le déchargement de réception UDP (URO) avec des paquets volumineux allant jusqu’à 64 Ko. Si cet indicateur n’est pas spécifié et qu’une légende est inscrite, l’URO est désactivé pour tout le trafic traité par tous les filtres qui spécifient la légende pour l’action du filtre. Note: Si cet indicateur est spécifié, les légendes ne doivent pas cloner et réinjecter les paquets URO entrants.

classifyFn

Pointeur vers la fonction de légende classFn2 du pilote de légende. Le moteur de filtre appelle cette fonction chaque fois qu’il y a des données réseau à traiter par la légende.

notifyFn

Pointeur vers la fonction notifyFn2 du pilote de légende. Le moteur de filtre appelle cette fonction pour informer le pilote de légende des événements associés à la légende.

flowDeleteFn

Pointeur vers la fonction de légende flowDeleteFn du pilote de légende. Le moteur de filtre appelle cette fonction chaque fois qu’un flux de données en cours de traitement par la légende est arrêté.

Si un pilote de légende n’associe pas de contexte aux flux de données que la légende traite, ce membre doit être défini sur NULL.

Remarques

Un pilote de légende transmet un pointeur vers une structure FWPS_CALLOUT2 initialisée vers la fonction FwpsCalloutRegister2 lorsqu’il inscrit une légende auprès du moteur de filtre.

Une légende peut définir l’indicateur FWP_CALLOUT_FLAG_CONDITIONAL_ON_FLOW uniquement pour les connexions sur lesquelles le pilote souhaite effectuer des inspections de flux. Cette légende sera ignorée sur toutes les autres connexions. Les performances seront améliorées et le pilote n’aura pas à gérer les données d’état inutiles.

Cette structure est essentiellement identique à la version précédente, FWPS_CALLOUT1. Les seules différences sont que les membres de cette version stockent les versions mises à jour des pointeurs de fonction de légende, et que des indicateurs supplémentaires sont disponibles pour les pilotes de légende à définir.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible à partir de Windows 8.
En-tête fwpsk.h (inclure Fwpsk.h)

Voir aussi

FWPS_CALLOUT0

FWPS_CALLOUT1

FwpsCalloutRegister2

Utilisation du filtrage de couche 2

classFn2

flowDeleteFn

notifyFn2