I’m going to point out that system call hooking misses I/O operations
that a file system filter driver does not, not the other way around.
ANYTHING that comes through the system call interface must go through
the I/O Manager and then into the driver stack. However, there are
sources of I/O (SRV, NFS, NTVDM, DFS, etc.) that do NOT go through the
system call interface to perform their I/O operations.
The best example is that SRV constructs and sends it’s own IRP requests
to the file systems. It does send those down the storage stack, but
does that below the system call table.
But there are also functions that do not use system calls - witness
IoCreateFile which is a documented IFS Kit call but does not issue a
system service call.
These ARE caught by a file system filter driver. The person who thinks
that a system call trap will capture calls that a file system filter
driver misses is very much mistaken. It *is* possible for one driver to
bypass other drivers (think of using IoCreateFileSpecifyDeviceObjectHint
for example, or just simply using IoCallDriver and pointing it to the
driver you want to invoke, bypassing any filters installed.) Normally
such behavior is a bug, but I have seen it exploited deliberately in
order to bypass other filters (to work around bugs for instance, or to
eliminate interoperability issues.)
As for classes in Asia, I’ve taught multiple times in Asia, both public
and private classes. If there is demand for a file systems class, and
if management values your efforts then they would be willing to pay for
such a class. However, the real issue here is that management often
does not understand the extremely complex nature of file systems
development. I’ve also seen that the budgeting process - even in US
companies - allocates very little money for training, not realizing that
the cost of “on the job training” is very high in this space - and
Windows Vista is going to make that even higher with more new features
in our space than I’ve seen since NT 4.0. (I’ll also mention that I’m
writing this from my hotel room in Seoul.)
Regards,
Tony
“Have laptop, will travel…”
Tony Mason
Consulting Partner
OSR Open Systems Resources, Inc.
http://www.osr.com
Looking forward to seeing you at the next OSR File Systems class in
Boston, MA April 18-21, 2006 (note new date - MS scheduled plugfest the
same week again.)
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Bedanto
Sent: Thursday, February 23, 2006 1:30 AM
To: ntfsd redirect
Subject: Re: [ntfsd] cache manager
Hi Tony,
Normally, caching is not established until first I/O because the call
to set up (CcInitializeCacheMap) is “expensive” when many file open
operations do not involve I/O.
This I read in Nagar’s book. However, it was not clear to me, how the
system starts redirecting cache manager calls to FastIo entry points
after CcInitializeCacheMap. The sequence of steps is what I cannot
comprehend.
Lyndon,
I don’t know where you are located, however i can guess that you are not
from Asia. Here the situation is far different. You cannot imagine the
constraints we face when it comes to packages offered by firms. Let
alone company sponsored trips to attend seminars. This topic has been
discussed time and again in this group, so no use repeating it.
All I can tell you is that we asians have to make do with waht we have,
which is our intellect and patience to read up thousands of webpages and
OSR threads to acquire the knowledge. Sometimes it is impossible,
sometimes it is way too much time consuming, but that cannot be helped.
You can not expect free help; you can just be grateful when it is
given.
I did not expect help, just polled the question to see if someone is knd
enough to take some time out and answer it. In fact, if you have
noticed, I have always thnked everyone who answered my queries.
You should invest in the excellent driver and file systems courses.
Thus these type of stametents who mean nothing to me, as we here dont
have that much infrastructure to do it.
You should remember all you have learned from the sfilter and filespy
code;
and forget much of what
you have also learned from the filemon code.
Why do you suggest that I forget what I have learned from the filemon
code??? Is there something seriously wrong with it?
You should not consider SSDT hooking; the “guru” gave you bad advice.
The rason the guru suggested this approach ( as i understand it) is
because he was sure some IO would go undetected in the filter driver
approach, and some would be in arbitrary context, as in the case of
paging IO. However, in SSDT approach since Nt* calls are tracked, all
these calls would be tapped before IOmanager, r other s mess with them.
Can you guarantee any other technique that is going to give me all IO
calls (even the ones that are directed to the cache manager) through a
filter driver?
Lastly, and not least…
thank you all once again, and I meant no offence in my mail, may be a
few lines might sound harsh, but they were not meant to be so…
bedanto
— Questions? First check the IFS FAQ at
https://www.osronline.com/article.cfm?id=17 You are currently subscribed
to ntfsd as: unknown lmsubst tag argument: ‘’ To unsubscribe send a
blank email to xxxxx@lists.osr.com