> You will never find a logical reason for most of the crashes you
encounter. Don’t kill yourself looking for them.
Sorry, but this is not only bunk but really bad advice. Filters and FSDs
(and most device drivers) are complex pieces of software within a complex
system, so, yes, the crashes/hangs/corruptions you encounter can be
incredibly difficult to analyze. However, that just comes with the territory
here and you can’t simply ignore them (I don’t know about you, but our
customers just hate it when they lose their data. Picky, picky…). You
*need* to find a logical reason for these things, otherwise you’re fooling
yourself in thinking that you truly understand the environment under which
your driver is running.
The good news is that the ability to analyze these issues is a learned
skill, it just takes time, effort, and practice. So, instead of advising
people to just give up and ignore the anamolous behavior they see, I’d
advise them to not get discouraged. I’d advise them to spend as much time as
possible learning about general O/S concepts, Windows internals, the x86/x64
platforms, and their specific technology. Then, when they get a crash or a
hang, they can apply all of this knowledge methodically and try to
hypothesize (i.e. guess) a logical reason for it. Then they collect
information to support or refute that conclusion. Rinse and repeat until
they uncover the core issue or stop making progress, at which point it’s
time to shelf it to come back to later or simply ask for help (it’s
absolutely amazing what a fresh set of eyes can do). This is the *only* way
to gain the skills necessary to perform this (critical) part of the job.
-scott
Scott Noone
Software Engineer
OSR Open Systems Resources, Inc.
http://www.osronline.com
“Chris Malcheski” wrote in message news:xxxxx@ntfsd…
Hi Mitja,
The thing to keep in mind with minifilters is that the filter manager has
absolutely no linear qualities about it. Over and over again, inside my own
preop and postop functions, I saw functions being called before the last
call to the same function was even 3 or 4 lines into the function.
EVERYTHING is asynchronous. If you try to synchronize, it’s going to be a
knock-down, drag-out battle to the death with the filter manager. I ended
up having to dump all but the most basic functionality out of the driver and
into the companion .DLL. You cannot stop the overlapping calls. I used
fast mutexes and they helped but they still could not stabilize the rampant
disorganization of the filter manager. It rolls through your drivers like a
blind battleship doing 100 knots. I tried multithreading to handle the
logging - anomalies were so rampant that I had to eliminate the entire
concept. You can pause the filter manager but then crashes galore happen.
I tried deferring calls; that didn’t help either. More anomalies. A driver
that shouldn’t have taken 50 hours required over 1000 just to stabilize it.
All it did was log changes to disk files; collect old data on the pre-write
and log new data on post-write. Nothing too difficult but that thing was
out for blood. It was all because of timing. If I delayed the filter
manager by any perceivable amount, it was nothing but anomalies. I’ve done
VxD’s, DOS drivers, BIOS functions, ATA / PCI direct interfacing, and
massive QIC / floppy work since 1984. I never saw anything like this filter
manager. Not even close. I have never, ever had half the problems I had
here - even the QIC drivers, which were so complex, only two existed on the
market at the time I wrote mine - were not half this difficult.
The only thing I could find that worked was to make the driver’s presence as
light as possible. It collects data and buffers it into memory; the
companion DLL retrieves that data as fast as inhumanly possible. Nothing
else could be done inside the driver. It wouldn’t stabilize.
You will never find a logical reason for most of the crashes you encounter.
Don’t kill yourself looking for them.
> Date: Thu, 20 Dec 2007 10:22:30 -0500
> From: xxxxx@hermes-softlab.com
> To: xxxxx@lists.osr.com
> Subject: [ntfsd] Problems with EncryptFile, DecryptFile with mini-filter
>
> Hi All,
>
> Is there any know limitation, consideration when implementing mini-filter
> driver, that should be considered because of NTFS EFS? Because when my
> filter driver come across with EncryptFile, DecryptFile Win32 api
> functions, some strange things starts to happening(low performance, os
> become unresponsive, …). Filter is somekind of file changes spy…
>
> Br, Mitja
>
>
> —
> NTFSD is sponsored by OSR
>
> For our schedule debugging and file system seminars
> (including our new fs mini-filter seminar) visit:
> http://www.osr.com/seminars
>
> You are currently subscribed to ntfsd as: xxxxx@msn.com
> To unsubscribe send a blank email to xxxxx@lists.osr.com
i’m is proud to present Cause Effect, a series about real people making a
difference. Learn more