Escribir rutinas de devolución de llamada de preoperación y postoperación
En su rutina DriverEntry , un controlador de minifiltro puede registrar hasta una rutina de devolución de llamada de preoperación y hasta una rutina de devolución de llamada de postoperación para cada tipo de operación de E/S que necesita filtrar.
A diferencia de un controlador de filtro del sistema de archivos heredado, un controlador de minifiltro puede elegir qué tipos de operaciones de E/S filtrar. Un controlador de minifiltro puede registrar una rutina de devolución de llamada de preoperación para un tipo determinado de operación de E/S sin registrar una devolución de llamada posterior a la operación y viceversa. El controlador de minifiltro recibe solo las operaciones de E/S para las que ha registrado una rutina de devolución de llamada de preoperación o posterior a la operación.
Una rutina de devolución de llamada de preoperación es similar a una rutina de distribución en el modelo de controlador de filtro heredado. Cuando el administrador de filtros procesa una operación de E/S, llama a la rutina de devolución de llamada de preoperación de cada controlador de minifiltro en la pila de instancias del controlador de minifiltro que ha registrado una para este tipo de operación de E/S. El controlador de minifiltro superior de la pila, es decir, el que tiene la altitud más alta, recibe primero la operación. Cuando el controlador de minifiltro finaliza el procesamiento de la operación, devuelve la operación al administrador de filtros, que luego pasa la operación al siguiente controlador de minifiltro más alto, etc. Cuando todos los controladores de minifiltro de la pila de instancias del controlador de minifiltro han procesado la operación de E/S, a menos que un controlador de minifiltro haya completado la operación de E/S, el administrador de filtros envía la operación a filtros heredados y al sistema de archivos.
Una rutina de devolución de llamada posterior a la operación es similar a una rutina de finalización en el modelo de controlador de filtro heredado. El procesamiento de finalización de una operación de E/S comienza cuando el administrador de E/S pasa la operación al sistema de archivos y a los filtros heredados que han registrado rutinas de finalización para la operación. Una vez finalizadas estas rutinas de finalización, el administrador de filtros realiza el procesamiento de finalización de la operación. A continuación, el administrador de filtros llama a la rutina de devolución de llamada de postoperación de cada controlador de minifiltro en la pila de instancias del controlador de minifiltro que ha registrado uno para este tipo de operación de E/S. El controlador de minifiltro inferior de la pila, es decir, el que tiene la altitud más baja, recibe primero la operación. Cuando el controlador de minifiltro finaliza el procesamiento de la operación, lo devuelve al administrador de filtros, que luego pasa la operación al controlador de minifiltro más bajo siguiente, etc.
Esta sección incluye:
Registro de rutinas de devolución de llamada de preoperación y postoperación
Filtrado de operaciones de E/S en un controlador de minifiltro
Escribir rutinas de devolución de llamada de preoperación
Escribir rutinas de devolución de llamada posteriores a la operación
Modificación de los parámetros de una operación de E/S
Determinar el método de almacenamiento en búfer para una operación de E/S