FwpmBfeStateSubscribeChanges0, fonction (fwpmk.h)

La fonction FwpmBfeStateSubscribeChanges0 enregistre une fonction de rappel appelée chaque fois qu’il y a une modification de l’état du moteur de filtre.

RemarqueFwpmBfeStateSubscribeChanges0 est une version spécifique de FwpmBfeStateSubscribeChanges. Pour plus d’informations , consultez WFP Version-Independent Names and Targeting Specific Versions of Windows .
 

Avertissement

N’appelez pas FwpmBfeStateUnsubscribeChanges0 à partir de la fonction de rappel que vous avez passée dans le paramètre de rappel . Cela peut entraîner un interblocage.

Syntaxe

NTSTATUS FwpmBfeStateSubscribeChanges0(
  [in, out]      void                                *deviceObject,
  [in]           FWPM_SERVICE_STATE_CHANGE_CALLBACK0 callback,
  [in, optional] void                                *context,
  [out]          HANDLE                              *changeHandle
);

Paramètres

[in, out] deviceObject

Pointeur vers un objet de périphérique créé précédemment par le pilote de légende. Pour plus d’informations sur la façon dont un pilote de légende crée un objet d’appareil, consultez Création d’un objet Device.

[in] callback

Pointeur vers une fonction de rappel de changement d’état de service fournie par un pilote de légende. Le moteur de filtre appelle cette fonction chaque fois qu’il y a un changement dans l’état du moteur de filtre.

Une fonction de rappel de changement d’état de service est déclarée comme suit.

VOID NTAPI
callback(
    IN OUT void  *context,
    IN FWPM_SERVICE_STATE  newState
    );

Context

Pointeur passé dans le paramètre Context lorsque le pilote de légende a appelé la fonction FwpmBfeStateSubscribeChanges0 .

newState

Nouvel état du moteur de filtre. Ce paramètre contient l’une des valeurs suivantes :

FWPM_SERVICE_STOPPED

Le moteur de filtre n’est pas en cours d’exécution.

FWPM_SERVICE_START_PENDING

Le moteur de filtre démarre.

FWPM_SERVICE_STOP_PENDING

Le moteur de filtre s’arrête.

FWPM_SERVICE_RUNNING

Le moteur de filtre est en cours d’exécution.

[in, optional] context

Pointeur vers un contexte fourni par le pilote de légende qui est passé à la fonction de rappel spécifiée dans le paramètre Callback .

[out] changeHandle

Pointeur vers une variable qui reçoit un handle associé à l’inscription de la fonction de rappel. Un pilote de légende transmet ce handle à la fonction FwpmBfeStateUnsubscribeChanges0 pour annuler l’inscription de la fonction de rappel.

Valeur retournée

La fonction FwpmBfeStateSubscribeChanges0 retourne l’un des codes NTSTATUS suivants :

Code de retour Description
STATUS_SUCCESS
La fonction de rappel a été correctement inscrite.
Autres codes status
Une erreur est survenue.

Remarques

Un pilote de légende appelle la fonction FwpmBfeStateSubscribeChanges0 pour inscrire une fonction de rappel appelée chaque fois que l’état du moteur de filtre est modifié.

Par exemple, un pilote de légende ne peut pas ouvrir une session sur le moteur de filtre en appelant la fonction FwpmEngineOpen0 , sauf si le moteur de filtre est en cours d’exécution. Un pilote de légende peut utiliser la notification FWPM_SERVICE_RUNNING pour ouvrir une session sur le moteur de filtre afin qu’il puisse effectuer des appels aux autres fonctions de gestion de la plateforme de filtrage Windows. De même, un pilote de légende peut utiliser la notification FWPM_SERVICE_STOP_PENDING pour effectuer un nettoyage avant l’arrêt du moteur de filtre.

Un pilote de légende doit appeler FwpmBfeStateSubscribeChanges0 avant d’appeler la fonction FwpmBfeStateGet0 pour récupérer l’état actuel du moteur de filtre. Une fois l’appel à FwpmBfeStateSubscribeChanges0 retourné, le pilote de légende peut appeler FwpmBfeStateGet0 à tout moment.

Un pilote de légende doit annuler l’inscription de la fonction de rappel en appelant le Fonction FwpmBfeStateUnsubscribeChanges0 avant que le pilote de légende puisse être déchargé.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible à partir de Windows Vista.
Plateforme cible Universal
En-tête fwpmk.h (incluez Fwpmk.h)
Bibliothèque Fwpkclnt.lib
IRQL PASSIVE_LEVEL

Voir aussi

FwpmBfeStateGet0

FwpmBfeStateUnsubscribeChanges0

FwpmEngineOpen0