Fonction FwpsFlowAssociateContext0 (fwpsk.h)

La fonction FwpsFlowAssociateContext0 associe un contexte défini par un pilote de légende à un flux de données.

RemarqueFwpsFlowAssociateContext0 est une version spécifique de FwpsFlowAssociateContext. Pour plus d’informations , voir PAM Version-Independent noms et Ciblage de versions spécifiques de Windows .
 

Syntaxe

NTSTATUS FwpsFlowAssociateContext0(
  [in] UINT64 flowId,
  [in] UINT16 layerId,
  [in] UINT32 calloutId,
  [in] UINT64 flowContext
);

Paramètres

[in] flowId

Identificateur au moment de l’exécution qui spécifie le flux de données auquel associer le contexte. L’identificateur d’exécution d’un flux de données est fourni à un pilote de légende par le biais de la valeur de métadonnées FWPS_METADATA_FIELD_FLOW_HANDLE qui a été passée à la fonction de légende classifyFn du pilote de légende.

[in] layerId

Identificateur d’exécution de la couche de filtrage à laquelle le contexte est associé. Le contexte sera associé uniquement à la couche de filtrage spécifiée. Pour plus d’informations, consultez Identificateurs de couche de filtrage au moment de l’exécution.

[in] calloutId

Identificateur d’exécution de la légende dans le moteur de filtre. Cet identificateur a été retourné lorsque le pilote de légende a appelé la fonction FwpsCalloutRegister0, FwpsCalloutRegister1 ou FwpsCalloutRegister2 pour inscrire la légende auprès du moteur de filtre.

[in] flowContext

Contexte défini par le pilote de légende à associer au flux de données. Ce paramètre ne doit pas être égal à zéro. Ce contexte est opaque pour le moteur de filtre.

Valeur retournée

La fonction FwpsFlowAssociateContext0 retourne l’un des codes NTSTATUS suivants.

Code de retour Description
STATUS_SUCCESS
Le contexte a été correctement associé au flux de données.
paramètre STATUS_INVALID
Le paramètre flowContext a la valeur NULL ou la légende spécifiée par le paramètre calloutID n’a pas de flowDeleteFn inscrit.
STATUS_OBJECT_NAME_EXISTS
Un contexte est déjà associé au flux de données. Dans ce cas, un pilote de légende doit d’abord appeler la fonction FwpsFlowRemoveContext0 pour supprimer le contexte existant, puis appeler à nouveau la fonction FwpsFlowAssociateContext0 pour associer le nouveau contexte au flux de données.
Autres codes status
Une erreur est survenue.

Remarques

Lors du filtrage d’un flux de données, un pilote de légende peut appeler la fonction FwpsFlowAssociateContext0 pour associer un contexte au flux de données. Il peut ensuite utiliser ce contexte pour conserver des données ou des informations d’état spécifiques au pilote entre les appels du moteur de filtre et la fonction de légende classififn d’une légende pour ce flux de données.

Il doit y avoir une légende dans le moteur de filtre au niveau de la couche identifiée par le paramètre layerId qui a inscrit une fonction de légende flowDeleteFn . Sinon, l’appel à la fonction FwpsFlowAssociateContext0 retourne STATUS_INVALID_PARAMETER. Le moteur de filtre appelle la fonction de légende flowDeleteFn lorsque le flux est terminé afin que le pilote de légende puisse propre le contexte associé au flux.

Vous pouvez appeler FwpsFlowAssociateContext0 plusieurs fois pour le même flux. Dans chaque appel, vous devez spécifier une légende différente et un contexte différent( un contexte par légende ajoutée.

La fonction FwpsFlowAssociateContext0 associe un seul contexte à une seule légende ajoutée.

Vous pouvez associer plusieurs contextes à un flux. Toutefois, chaque contexte doit être associé à une légende différente. La nouvelle légende peut se trouver au niveau de la même couche que la précédente ou d’une autre couche.

Pour plus d’informations et pour obtenir un exemple de code, consultez Association d’un contexte à un Data Flow et l’exemple de plateforme de filtrage Windows.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible à partir de Windows Vista.
Plateforme cible Universal
En-tête fwpsk.h (inclure Fwpsk.h)
Bibliothèque Fwpkclnt.lib
IRQL <= DISPATCH_LEVEL

Voir aussi

Association d’un contexte à un Data Flow

FwpsCalloutRegister0

FwpsCalloutRegister1

FwpsCalloutRegister2

FwpsFlowRemoveContext0

Exemple de plateforme de filtrage Windows

classFn

flowDeleteFn