Partager via


Écriture de routines de rappel de préopération et de post-opération

Dans sa routine DriverEntry , un pilote de minifiltre peut inscrire jusqu’à une routine de rappel de préopération et jusqu’à une routine de rappel post-opération pour chaque type d’opération d’E/S qu’il doit filtrer.

Contrairement à un pilote de filtre de système de fichiers hérité, un pilote de minifiltre peut choisir les types d’opérations d’E/S à filtrer. Un pilote de minifiltre peut inscrire une routine de rappel de préopération pour un type donné d’opération d’E/S sans inscrire de rappel postopératoire, et inversement. Le pilote de minifiltre reçoit uniquement les opérations d’E/S pour lesquelles il a inscrit une routine de rappel de préopération ou de post-opération.

Une routine de rappel de préopération est similaire à une routine de répartition dans le modèle de pilote de filtre hérité. Lorsque le gestionnaire de filtres traite une opération d’E/S, il appelle la routine de rappel de préopération de chaque pilote de minifiltre dans le pilote minifiltre instance pile qui en a inscrit un pour ce type d’opération d’E/S. Le pilote de minifiltre le plus haut dans la pile, c’est-à-dire celui dont l’instance a l’altitude la plus élevée, reçoit d’abord l’opération. Lorsque ce pilote de minifiltre termine le traitement de l’opération, il retourne l’opération au gestionnaire de filtres, qui transmet ensuite l’opération au pilote de minifiltre le plus élevé, et ainsi de suite. Lorsque tous les pilotes de minifiltre du pilote minifiltre instance pile ont traité l’opération d’E/S, sauf si un pilote de minifiltre a terminé l’opération d’E/S, le gestionnaire de filtres envoie l’opération aux filtres hérités et au système de fichiers.

Une routine de rappel post-opération est similaire à une routine d’achèvement dans le modèle de pilote de filtre hérité. Le traitement de l’achèvement d’une opération d’E/S commence lorsque le gestionnaire d’E/S transmet l’opération au système de fichiers et aux filtres hérités qui ont inscrit des routines d’achèvement pour l’opération. Une fois ces routines d’achèvement terminées, le gestionnaire de filtres effectue le traitement d’achèvement de l’opération. Le gestionnaire de filtres appelle ensuite la routine de rappel post-opération de chaque pilote de minifiltre dans la pile instance du pilote minifiltre qui en a inscrit un pour ce type d’opération d’E/S. Le pilote de minifiltre inférieur dans la pile, c’est-à-dire celui dont l’instance a l’altitude la plus faible, reçoit en premier l’opération. Lorsque ce pilote de minifiltre termine le traitement de l’opération, il la retourne au gestionnaire de filtres, qui transmet ensuite l’opération au pilote de minifiltre le plus bas, et ainsi de suite.

Cette section comprend :

Inscription de routines de rappel de préopération et de post-opération

Filtrage des opérations d’E/S dans un pilote de minifiltre

Écriture de routines de rappel de préopération

Écriture de routines de rappel post-opération

Modification des paramètres d’une opération d’E/S

Détermination de la méthode de mise en mémoire tampon pour une opération d’E/S

Accès aux mémoires tampons utilisateur pour une opération d’E/S