Nick,
Thanks for the response - I had the impression that a file-system filter
was quite high-level in the general scheme of things, and wouldn't
get to see paging I/O Irps as you describe, but the FileSpy sample
seems to be just what I'm looking for..
Thanks,
James
"Nick Ryan" <> wrote in message
news

rHQa.53847$OZ2.9437@rwcrnsc54...
> Because your requirements include being able to map data accesses back
> to a file/file offset, you need a filesystem filter and not a disk
> filter. Although memory-mapped I/O at the 'upper-level' is not
> filterable, since the app operates directly on Cache Manager memory
> pages, this memory must be paged in upon first access, and dirty pages
> written out eventually. The Memory Manager satisfies these requirements
> by generating paging I/O read/write IRPs that can be intercepted by your
> filter.
>
> I'll re-iterate what Max said and advocate not using FileMon. Start with
> the FileSpy sample from the IFSKIT, it is much better.
>
> James Brown wrote:
>
> > Hi,
> > I want to write a device driver to monitor all activity to and from
> > a floppy disk.
> >
> > In actual fact, all I want to see are create/open/close requests on any
> > files,
> > and any read/write activity once those files are open. I have looked at
the
> > FileMon
> > application (and source) from sysinternals. This does *not* fit my
> > requirements, because
> > it does not appear to capture all activity - specifically, it does not
show
> > any
> > activity as a result of memory-mapped files (i.e. a section object
created
> > from
> > a file on disk, mapped into a process's address space).
> >
> > I really want to monitor all reads/writes, even those resulting from
virtual
> > memory operations.
> > Ideally I would like to be able to easily map these reads/writes back to
a
> > specific
> > file / file offset.
> >
> > So, what type of filter driver do I need to implement? A very low-level
> > filter which
> > sits under / just above the floppy driver, or some kind of file-system
> > driver? Which
> > floppy driver do I need to filter, and at what level is the easiest to
> > insert a driver into?
> >
> > Advice on this subject would be much appreciated...
> >
> > Thanks,
> > James
> >
> >
>