Share via


Conceptos del Administrador de filtros

El administrador de filtros (FltMgr.sys) es un controlador de modo kernel proporcionado por el sistema que implementa y expone la funcionalidad que se requiere habitualmente en los controladores de filtro del sistema de archivos. Los desarrolladores de filtros del sistema de archivos de terceros pueden usar la funcionalidad de FltMgr para escribir controladores de "minifiltro" más fáciles de desarrollar que los controladores de filtro del sistema de archivos heredados. El resultado final es un proceso de desarrollo abreviado y controladores más sólidos y de mayor calidad.

FltMgr se instala con Windows, pero solo se activa cuando se carga un controlador de minifiltro. Se adjunta a la pila del sistema de archivos para un volumen de destino. Un controlador de minifiltro se conecta indirectamente a la pila del sistema de archivos, registrando con FltMgr para las operaciones de E/S que el controlador de minifiltro elige filtrar.

Los minifiltros se adjuntan en un orden determinado. El sistema operativo determina el orden de los datos adjuntos por grupos de orden de carga y altitudes. Los datos adjuntos de un controlador de minifiltro a una altitud determinada en un volumen determinado se denominan una instancia del controlador de minifiltro.

Altitud de un minifiltro:

  • Garantiza que la instancia del controlador de minifiltro siempre se cargue en la ubicación adecuada en relación con otras instancias del controlador de minifiltro.
  • Determina el orden en el que FltMgr llama al controlador de minifiltro para controlar la E/S.

En la ilustración siguiente se muestra una pila de E/S simplificada con el administrador de filtros y tres controladores de minifiltro.

Diagrama que ilustra una pila de E/S simplificada con el administrador de filtros y tres controladores de minifiltro.

Un controlador de minifiltro puede filtrar las operaciones de E/S basadas en IRP y las operaciones de devolución de llamada de E/S rápidas y de filtro de sistema de archivos (FSFilter). Para cada una de las operaciones de E/S que elige filtrar, un minifiltro puede registrar una rutina de devolución de llamada de preoperación, una rutina de devolución de llamada postoperación o ambas. Cuando FltMgr controla una operación de E/S, llama a la rutina de devolución de llamada adecuada para cada controlador de minifiltro registrado para esa operación. Cuando se devuelve esa rutina de devolución de llamada, FltMgr llama a la rutina de devolución de llamada adecuada para el siguiente controlador de minifiltro registrado para la operación.

Por ejemplo, supongamos que los tres controladores de minifiltro de esta figura se registraron para la misma operación de E/S. En esta situación:

  • Cuando FltMgr recibe la operación de E/S, llama a las rutinas de devolución de llamada de preoperación de minifiltro en orden de altitud de mayor a menor (A, B, C). FltMgr reenvía la solicitud de E/S al siguiente controlador inferior para su posterior procesamiento.
  • Cuando FltMgr recibe la solicitud de E/S para su finalización, llama a cada rutina de devolución de llamada del controlador de minifiltro en orden inverso, de menor a mayor (C, B, A).

Para la interoperabilidad con controladores de filtro heredados, FltMgr puede adjuntar objetos de dispositivo de filtro a una pila de E/S del sistema de archivos en más de una ubicación. Cada uno de los objetos de dispositivo de filtro de FltMgr se denomina marco. Desde la perspectiva de un controlador de filtro heredado, cada marco del administrador de filtros es solo otro controlador de filtro heredado.

Cada marco de administrador de filtros representa un intervalo de altitud. FlgMgr puede ajustar un marco existente o crear un nuevo marco para permitir que los controladores de minifiltro se conecten en la ubicación correcta.

FltMgr no puede adjuntar un minifiltro entre dos filtros heredados adjuntos a menos que ya haya un marco de administrador de filtros entre ellos. Si un minifiltro está pensado para adjuntarse encima de un filtro heredado, se puede adjuntar debajo de él, dependiendo de la existencia de un segundo filtro heredado adjunto. Un minifiltro destinado a adjuntarse debajo de un filtro heredado podría, en su lugar, adjuntarse encima de ese filtro heredado.

Importante

Compruebe siempre la interoperabilidad de filtros heredados con minifiltros o considere la posibilidad de reemplazar filtros heredados por minifiltros. Para obtener más información, vea Directrices para migrar controladores de filtro heredados.

Si un controlador de minifiltro se descarga y se vuelve a cargar, se vuelve a cargar a la misma altitud en el mismo marco desde el que se descargó.

En la ilustración siguiente se muestra una pila de E/S simplificada con dos marcos de administrador de filtros, instancias de controlador de minifiltro y un controlador de filtro heredado.

diagrama que ilustra una pila simplificada de E/S con dos marcos de administrador de filtros, instancias de controlador de minifiltro y un controlador de filtro heredado.