Then you are not setting your own device object up properly. DeviceObject->StackSize should be set to the size of the longest stack you intend on invoking *plus one* for your driver. This is a basic driver rule and has been for the past 23+ years.
Tony
OSR
NTFSD is sponsored by OSR
MONTHLY seminars on crash dump analysis, WDF, Windows internals and software drivers!
Details at http:
To unsubscribe, visit the List Server section of OSR Online at http:</http:></http:>
Actually i have had experience of windows kernel but i have experience of linux kernel.
can i get some sample for layered file system?
or i will write on-the-fly file system using layered fsd but if i want to write it filter(not mini-filter) is it possible to write on-the-fly with filter?
which one is better filter and file system(layered fsd)?
We can license a full kit to you, but it is not a free example and represents many years of development work at this point. Building a layered file system is challenging in Windows, but at least it is possible. The Linux model does not support layered file systems (their focus is on constructing new file systems via FUSE). It is possible to layer on Linux, but it’s just not supported and strongly discouraged (I’ve been part of a team that has layered the VFS layer before. It’s ugly.)
Better in terms of what?
In terms of complexity I would rank them (from easiest to most difficult):
(1) Do-nothing filter. There are more examples of this than anything else. It’s easy to measure and count activity.
(2) File system driver. There’s complexity here, but the lower edge is generally simple. File systems have quit a lot of control, which helps mitigate the complexity of interaction with the OS.
(3) Isolation Filters. These are what you use for doing things like layered file systems, encryption, compression, data staging/fulfillment drivers, HSMs, etc. These manage the cache themselves, but have the complex upper/lower edge interface.
(4) Ad-hoc Filters. These have a tendency of starting in category (1) but then gain functionality. *If* you can strictly limit them, they can be simple, but the moment you try to generalize them, they become complex. People in this space often end up violating various rules in Windows in order to attempt to avoid implementing (3), such as trying to manipulate the underlying file system’s cache (which can’t be done safely). Usually this is where someone starts before they end up either giving up (because the product is never stable) or they learn enough to move to (3).
I don’t know enough about what you are trying to accomplish to suggest the right solution. I would suggest that you might benefit from sitting through my file systems class next month, though I understand if you’d prefer to learn it on your own.