Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Uno de los problemas más insidiosos que un controlador de filtro del sistema de archivos debe controlar correctamente es la coexistencia con otros controladores de filtro. Al compilar un controlador de filtro del sistema de archivos para coexistir con otros controladores de filtro del sistema de archivos, es mejor tener en cuenta los siguientes problemas:
Los controladores de filtro deben tener en cuenta la presencia de otros controladores de filtro en sus operaciones. Cualquier operación realizada por el controlador de filtro debe ser lo suficientemente sólida como para sobrevivir a un controlador de filtro adicional mediante la misma técnica o diferente.
Los controladores de filtro pueden afectar al comportamiento de otros filtros cambiando el comportamiento base del sistema.
El incremento del número de controladores de filtro aumenta el consumo de recursos escasos, especialmente del espacio en la pila. Los controladores de filtro del sistema de archivos deben esforzarse por minimizar su uso de estos recursos escasos. De lo contrario, las aplicaciones de usuario malintencionadas pueden aprovechar estas debilidades para provocar un error en el sistema. Los desarrolladores deben ser especialmente cuidadosos con los caminos de finalización y los caminos de error.
Los controladores de filtro deben ser conservadores en lo que envían al controlador inferior (controlador de filtro o sistema de archivos) y deben ser liberales en lo que aceptan. Siempre que sea posible, el controlador de filtro debe intentar asegurarse de que las operaciones que envían al controlador subyacente son sencillas y no complicadas (no realizan operaciones de cambio de nombre durante las operaciones de creación, por ejemplo).
Los controladores de filtro deben tener cuidado con el bloqueo. Los bloqueos nunca deben mantenerse durante las llamadas al sistema de archivos. Varios componentes del sistema realizan suposiciones muy precisas y explícitas sobre el orden de bloqueo y las funciones que pueden y no pueden bloquearse. Alterar esto agregando otra capa de bloqueo puede provocar fácilmente interbloqueos. La E/S que se origina en Srv.sys expone estos problemas de manera especialmente rápida, pero también se pueden observar durante las pruebas de esfuerzo normales.
Es imperativo que cualquier desarrollador de controladores de filtro del sistema de archivos no solo diseñe e implemente para coexistir de forma limpia con otros controladores de filtro, sino también probar el controlador de filtro con otros controladores de filtro para asegurarse de que el controlador no introduce problemas de seguridad dentro del sistema.