Share via


Attachement d’un module de filtre

Pour lancer le processus d’insertion d’un module de filtre dans une pile de pilotes, NDIS appelle la fonction FilterAttach d’un pilote de filtre. Au début de l’exécution dans la fonction FilterAttach , le module de filtre entre dans l’état Attachement . Pour plus d’informations sur l’attachement d’un module de filtre à une pile de pilotes, consultez Démarrage d’une pile de pilotes.

Un pilote de filtre utilise le handle que NDIS transmet au paramètre NdisFilterHandle de FilterAttach dans tous les futurs appels de fonction NdisXxx qui font référence à ce module de filtre. Ces fonctions incluent les indications status, l’envoi de requêtes, la réception d’indications et les requêtes OID.

Lorsqu’un module de filtre est à l’état Attachement , le pilote :

  • Crée une zone de contexte pour le module de filtre et alloue des pools de mémoires tampons et d’autres ressources spécifiques au module de filtre. Pour plus d’informations sur les pools de mémoires tampons, consultez Gestion de la mémoire tampon du pilote de filtre.

  • Appelle la fonction NdisFSetAttributes à l’aide de la valeur NdisFilterHandle que NDIS a transmise à FilterAttach. Le paramètre FilterModuleContext de NdisFSetAttributes spécifie la zone de contexte du pilote de filtre pour ce module de filtre. NDIS transmet cette zone de contexte aux fonctions FilterXxx du pilote de filtre.

  • Si vous le souhaitez, lit les paramètres de configuration de ce module de filtre à partir du Registre. Pour plus d’informations, consultez Accès aux informations de configuration pour un pilote de filtre.

  • Si les opérations précédentes se sont terminées avec succès, le module de filtre est à l’état Suspendu .

  • Si les opérations précédentes ont échoué, le pilote de filtre doit libérer toutes les ressources qu’il a allouées dans la fonction FilterAttach et retourner le module de filtre à l’état Détaché .

  • Retourne NDIS_STATUS_SUCCESS ou un code d’échec approprié. Si le pilote retourne un code d’échec, NDIS met fin à la pile des pilotes.

Note Le Registre peut contenir un indicateur, qui spécifie qu’un module de filtre est facultatif. Si un module de filtre facultatif ne s’attache pas, NDIS n’arrête pas le reste de la pile de pilotes.

Un pilote de filtre ne peut pas envoyer de requêtes, indiquer les données reçues, effectuer des requêtes OID ou effectuer status indications à partir de l’état d’attachement. Les opérations d’envoi et de réception sont prises en charge dans les états En cours d’exécution et De suspension . Les requêtes OID et les indications de status sont prises en charge dans les états Suspendu, Redémarrage, Exécution et Mise en pause.

NDIS appelle la fonction FilterDetach pour détacher un module de filtre joint par NDIS avec FilterAttach. Pour plus d’informations, consultez Détacher un module de filtre.