Upper and Lower Filter Drivers

Hi everyone.

Is there any concept of filter driver in case of Linux like in Windows OS. In windows we can write a filter driver to enhance the behaviour of an existing driver and this filter driver can be attached to main driver either above or below. I was wondering whether such a concept has been introduced into Linux or is the only option to rewrite the appropriate driver and insmod it?

Many thanks.