I’m one of those who would disagree with you about writing a file system
first, Tony - but only mildly. I think with the mini-filter model that’s
available these days, it’s pretty easy to write a simple filter and then
scale up to a more complex one. That’s difficult to do as easily with a file
system. But my definition of “pretty easy” may be somewhat at variance with
that definition by most developers, especially those that don’t have some
kernel development behind them… And it’s as complex as a filesystem when
you get into a really complicated filter. And by the time you’re finished
writing the complex filter, you’ll have spent as much time learning the way
file systems work as you spend learning how filters work - because they
really can’t be dis-entangled.
Nevertheless, for the OP, there a set of resources that s/he really needs to
look at before asking questions like this:
-
Get, read, and understand “Microsoft Windows Internals” by Mark
Russinovich and David Solomon. A very, very good book, with lots of
information you need to know if you’re going to be able to actually develop
well in Windows kernel mode. Get the forth edition unless you’re really into
history. ISBN: 0735619174.
-
There are a number of other good books out there about kernel/driver
development, all of which will address the original question (about paged vs
nonpaged). I like Tony’s book which is now available on OSRonline (and a bit
outdated), but there are others.
-
Don’t underestimate the amount of learning available through MSDN online.
It can be a bit of a challenge to
-
Get a course on kernel development with OSR or one of the other folks
doing kernel training out there. I haven’t heard of a bad one yet. This
tends to be a high dollar solution, but it’s the fastest way to getting the
foundations laid.
…dave
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Tony Mason
Sent: Wednesday, August 23, 2006 12:05 AM
To: Windows File Systems Devs Interest List
Subject: RE: [ntfsd] Allocating paged or non-paged memory
If you think that writing filters is simpler than writing file systems, you
are mistaken.
File systems have a complex upper-edge interface but generally a simple
lower-edge interface (e.g., the block interface used by physical file
systems or some protocol interface/network interface used by network file
systems.)
Filter drivers have a complex upper-edge interface (same as the file
system) and a complex lower edge interface (same as the file system.) If you
just sit quietly and do nothing (“passive filter”) then you’ll be pretty
safe because it does not require much understanding. If you decide to
change the flow of operations (“active filter”) you have to understand this
interface profoundly well, lest you break it.
While I’m sure some will disagree with me, I’d suggest writing a file system
first and THEN writing a filter driver - by then you’ll have sufficient
understanding of the interface that you might be able to write a correct
active filter.
Unfortunately, the usual approach that people take to this business is to
undertake a filter because they think it is simpler than the real thing (and
with passive examples easily found, this myth is perpetuated) when in fact
that’s actually not the real case.
Tony
Tony Mason
Consulting Partner
OSR Open Systems Resources, Inc.
http://www.osr.com
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of xxxxx@yahoo.com
Sent: Wednesday, 23 August 2006 9:43 AM
To: ntfsd redirect
Subject: RE:[ntfsd] Allocating paged or non-paged memory
Thanks for your information. I am actually reading 'Windows NT: File Systems
Internal" by Rajeev Nagar , however, there are times when the information in
this book is too overwhelming for me. Is there a book specifically on filter
driver development?
Questions? First check the IFS FAQ at
https://www.osronline.com/article.cfm?id=17
You are currently subscribed to ntfsd as: xxxxx@osr.com To unsubscribe send
a blank email to xxxxx@lists.osr.com
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