FWPS_CALLOUT_CLASSIFY_FN0 fonction de rappel (fwpsk.h)

Le moteur de filtre appelle la fonction de légende classifyFn0 d’une légende chaque fois que la légende doit traiter des données.

Notezque classifyFn0 est la version spécifique de classifyFn utilisée dans Windows Vista et versions ultérieures. Pour plus d’informations , consultez WFP Version-Independent Names and Targeting Specific Versions of Windows . Pour Windows 8, classFn2 est disponible. Pour Windows 7, classifyFn1 est disponible.
 

Syntaxe

FWPS_CALLOUT_CLASSIFY_FN0 FwpsCalloutClassifyFn0;

void FwpsCalloutClassifyFn0(
  [in]      const FWPS_INCOMING_VALUES0 *inFixedValues,
  [in]      const FWPS_INCOMING_METADATA_VALUES0 *inMetaValues,
  [in, out] void *layerData,
  [in]      const FWPS_FILTER0 *filter,
  [in]      UINT64 flowContext,
  [in, out] FWPS_CLASSIFY_OUT0 *classifyOut
)
{...}

Paramètres

[in] inFixedValues

Pointeur vers une structure FWPS_INCOMING_VALUES0 . Cette structure contient les valeurs de chacun des champs de données au niveau de la couche en cours de filtrage.

[in] inMetaValues

Pointeur vers un FWPS_INCOMING_METADATA_VALUES0 structure. Cette structure contient les valeurs de chacun des champs de métadonnées au niveau de la couche en cours de filtrage.

[in, out] layerData

Pointeur vers une structure qui décrit les données brutes au niveau de la couche filtrée. Ce paramètre peut être NULL, en fonction de la couche filtrée et des conditions dans lesquelles la fonction de légende classifyFn0 est appelée. Pour la couche de flux, ce paramètre pointe vers un FWPS_STREAM_CALLOUT_IO_PACKET0 structure. Pour toutes les autres couches, ce paramètre pointe vers une structure NET_BUFFER_LIST si elle n’est pas NULL.

[in] filter

Pointeur vers une structure FWPS_FILTER0 . Cette structure décrit le filtre qui spécifie la légende de l’action du filtre.

[in] flowContext

Variable de type UINT64 qui contient le contexte associé au flux de données. Si aucun contexte n’est associé au flux de données, ce paramètre est égal à zéro. Si la légende est ajoutée au moteur de filtre au niveau d’une couche de filtrage qui ne prend pas en charge les flux de données, la fonction de légende classifyFn0 doit ignorer ce paramètre.

[in, out] classifyOut

Pointeur vers une structure de FWPS_CLASSIFY_OUT0 qui reçoit toutes les données que la fonction de légende classifyFn0 retourne à l’appelant.

Valeur de retour

None

Remarques

Un pilote de légende inscrit les fonctions de légende d’une légende auprès du moteur de filtre en appelant la fonction FwpsCalloutRegister0 .

Le moteur de filtre appelle la fonction de légende classifyFn0 d’une légende avec des données à traiter chaque fois que toutes les conditions de test sont remplies pour un filtre dans le moteur de filtre qui spécifie la légende de l’action du filtre.

La fonction de légende classifyFn0 d’une légende doit effacer l’indicateur de FWPS_RIGHT_ACTION_WRITE dans le membre de droits de la structure FWPS_CLASSIFY_OUT0 dans l’une des situations suivantes :

  • Lorsque la fonction de légende classifyFn0 définit le membre actionType de la structure FWPS_CLASSIFY_OUT0 sur FWP_ACTION_BLOCK.
  • Lorsque la fonction de légende classifyFn0 définit le membre actionType de la structure FWPS_CLASSIFY_OUT0 sur FWP_ACTION_PERMIT et que l’indicateur FWPS_FILTER_FLAG_CLEAR_ACTION_RIGHT est défini dans le membre Flags de la structure FWPS_FILTER0 .
  • Lorsqu’une légende indique qu’elle a l’intention de modifier la liste des mémoires tampons nettes clones en définissant le paramètre intendToModify sur TRUE dans un appel à la fonction FwpsReferenceNetBufferList0 .

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible à partir de Windows Vista.
Plateforme cible Windows
En-tête fwpsk.h (include Fwpsk.h)
IRQL <= DISPATCH_LEVEL

Voir aussi

Association d’un contexte à un Data Flow

Fonctions de légende du pilote de légende

Journalisation des données

FWPS_CALLOUT0

FWPS_CLASSIFY_OUT0

FWPS_FILTER0

FWPS_INCOMING_METADATA_VALUES0

FWPS_INCOMING_VALUES0

FwpsCalloutRegister0

FwpsCalloutRegister1

FwpsReferenceNetBufferList0

NET_BUFFER_LIST

Exemples de modification de paquets

Inscription de légendes auprès du moteur de filtre

Utilisation d’une légende pour l’inspection approfondie des données Stream

Utilisation d’une légende pour l’inspection approfondie

classifyFn

classifiFn1

classifiFn2