Partager via


FwpmBfeStateSubscribeChanges0, fonction (fwpmk.h)

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

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 blocage.

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 d’appareil 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 d’appareil.

[in] callback

Pointeur vers une fonction de rappel de changement d’état de service fournie par le pilote de légende. Le moteur de filtre appelle cette fonction chaque fois qu’il existe une modification de 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
    );

Contexte

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 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 de rappel FwpmBfeStateUnsubscribeChanges0 pour désinscrire la fonction de rappel.

Valeur de retour

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

Retourner le code Description
STATUS_SUCCESS La fonction de rappel a été correctement inscrite.
autres codes NTSTATUS Une erreur s’est produite.

Remarques

Un pilote de légende appelle la fonction FwpmBfeStateSubscribeChanges0 pour inscrire une fonction de rappel appelée chaque fois qu’il existe une modification de l’état du moteur de filtre.

Par exemple, un pilote de légende ne peut pas ouvrir une session au 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 au moteur de filtre afin qu’elle puisse effectuer des appels à l’autre 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. Après l’appel à FwpmBfeStateSubscribeChanges0 retourne, le pilote de légende peut appeler FwpmBfeStateGet0 à tout moment.

Un pilote de légende doit désinscrire la fonction de rappel en appelant le FwpmBfeStateUnsubscribeChanges0 fonction avant que le pilote de légende ne puisse être déchargé.

FwpmBfeStateSubscribeChanges0 est une version spécifique de FwpmBfeStateSubscribeChanges. Pour plus d’informations, consultez PAM Version-Independent noms et ciblage de versions spécifiques de Windows.

Exigences

Exigence Valeur
client minimum pris en charge Disponible à partir de Windows Vista.
plateforme cible Universel
d’en-tête fwpmk.h (include Fwpmk.h)
bibliothèque Fwpkclnt.lib
IRQL PASSIVE_LEVEL

Voir aussi