Partager via


Opérations et états de module de filtre

Un pilote de filtre doit prendre en charge les états opérationnels suivants pour chaque module de filtre (instance d’un pilote de filtre) que le pilote gère :

Détachée
L’état Détaché est l’état initial d’un module de filtre. Lorsqu’un module de filtre est dans cet état, NDIS peut appeler la fonction FilterAttach du pilote de filtre pour attacher le module de filtre à la pile de pilotes.

attachement
Dans l’état Attachement , un pilote de filtre se prépare à attacher le module de filtre à la pile de pilotes.

Pause
À l’état Suspendu , le pilote de filtre n’effectue pas d’opérations d’envoi ou de réception.

Redémarrage
Dans l’état Redémarrage , un pilote de filtre effectue toutes les opérations requises pour redémarrer les opérations d’envoi et de réception d’un module de filtre.

Exécution
Dans l’état En cours d’exécution , un pilote de filtre effectue un traitement d’envoi et de réception normal pour un module de filtre.

Pause
Dans l’état Suspension , un pilote de filtre effectue toutes les opérations nécessaires pour arrêter les opérations d’envoi et de réception d’un module de filtre.

Dans le tableau suivant, les en-têtes sont les états du module de filtre. Les événements principaux sont répertoriés dans la première colonne. Le reste des entrées de la table spécifient l’état suivant que le module de filtre entre après qu’un événement se produit dans un état. Les entrées vides représentent des combinaisons événement/état non valides.

Événement/état Détachée attachement Suspendu Redémarrage Exécution en cours Suspension en cours

Attachement de filtre

attachement

L’attachement est terminé

Suspendu

Détacher le filtre

Détachée

Redémarrage du filtre

Redémarrage

Le redémarrage est terminé

Exécution en cours

Pause de filtre

Suspension en cours

La pause est terminée

Suspendu

Échec de l’attachement

Détachée

Échec du redémarrage

Suspendu

Envoi et réception

Exécution en cours

Suspension en cours

Demandes OID

Suspendu

Redémarrage

Exécution en cours

Suspension en cours

Les événements du pilote de filtre principal sont définis comme suit :

Attachement de filtre
NDIS a appelé la fonction FilterAttach du pilote pour attacher un module de filtre à une pile de pilotes. Pour plus d’informations sur l’attachement d’un module de filtre, consultez Attachement d’un module de filtre.

L’attachement est terminé
Lorsqu’un module de filtre est à l’état Attachement et que le pilote de filtre termine l’initialisation de toutes les ressources requises par le module de filtre, le module de filtre passe à l’état Suspendu .

Détacher le filtre
NDIS a appelé la fonction FilterDetach du pilote pour détacher un module de filtre d’une pile de pilotes. Pour plus d’informations, consultez Détacher un module de filtre.

Redémarrage du filtre
NDIS a appelé la fonction FilterRestart du pilote pour redémarrer un module de filtre en pause. Pour plus d’informations, consultez Démarrage d’un module de filtre.

Le redémarrage est terminé
Lorsque le module de filtre est à l’état Redémarrage et que le pilote est prêt à effectuer des opérations d’envoi et de réception, le module de filtre entre dans l’état En cours d’exécution .

Pause de filtre
NDIS a appelé la fonction FilterPause du pilote pour suspendre un module de filtre. Pour plus d’informations, consultez Suspension d’un module de filtre.

La pause est terminée
Une fois que le pilote a terminé toutes les opérations nécessaires pour arrêter les opérations d’envoi et de réception, l’opération de pause est terminée et le module de filtre est à l’état Suspendu .

Échec de l’attachement
Si NDIS appelle la fonction FilterAttach d’un pilote et que l’opération d’attachement échoue (par exemple, parce que les ressources requises ne sont pas disponibles), le module de filtre revient à l’état Détaché .

Échec du redémarrage
Si NDIS appelle la fonction FilterRestart d’un pilote et que la tentative de redémarrage échoue, le module de filtre retourne à l’état Suspendu .

Opérations d’envoi et de réception
Un pilote peut gérer les opérations d’envoi et de réception dans les états d’exécution et de suspension . Pour plus d’informations sur les opérations d’envoi et de réception, consultez Filtrer les opérations d’envoi et de réception du module.

Demandes OID
Un pilote peut gérer les requêtes OID dans les états En cours d’exécution, Redémarrage, Pause etMise en pause . Pour plus d’informations sur les requêtes OID, consultez Filtrer les requêtes OID du module.