1. A computer-readable storage medium having computer-executable instructions for a filter to monitor I/O requests associated with the filter which, when executed, perform a method comprising: instantiating a file system filter associated with a file system, the filter arranged to provide functionality not provided by the file system; registering the filter with a registration mechanism in a filter manager; the filter notifying the filter manager of at least one type of I/O request in which it is interested; the filter specifying whether the filter should be notified for pre-callbacks for the at least one type of I/O request; the filter specifying whether the filter should be notified for post callbacks for the at least one type of I/O request; maintaining data identifying one or more objects of interest to the filter; maintaining a namespace associated with the filter which is distinct from the namespace maintained by the file system; receiving an I/O request for an object of the file system; the filter manager creating a data structure comprising callback data from the received I/O request; determining that the object is an object of interest to the filter; the filter manager calling the filter; the filter manager passing the callback data to the filter; the filter determining a filter action associated with the received I/O request and performing the determined filter action; and updating the namespace associated with the filter based on the received I/O request.