Please ignore that message. The results of my tests were meaningless. I
had one section of code that I forgot to disable.
“Mark Hahn” wrote in message news:xxxxx@ntfsd…
> As part of chasing my problem getting hangs on “sc stop”, I have
> simplified my mini-filter to do nothing but add a stream context to each
> stream referenced by a pre-write. If the context already exists then I
> just release the existing one instead of adding a new one. I don’t do a
> release for the allocate but I do one for each get and set. This keeps
> the context reference count at one which I verify with asserts everywhere.
> I keep these created contexts on a list so that I can work with them in
> the unload routine.
>
> When I run this ultra simple filter with verify enabled, the verifier
> bugchks after my unload routine with an error saying that I have X
> non-paged memory leaks. X is always equal to the number of contexts I
> have created.
>
> In my unload routine I have tried three different things to eliminate the
> leaks. I loop through each context from my context list and perform the
> action I am testing. Here are the results of each test:
>
> 1) If I call FltReleaseContext on a context I get this error immediately
> during the call on the first one. I have observed this error before when
> I decrease the context ref count to zero:
>
> Assertion failed: !FlagOn((CtxNode)->TreeLink.Flags,TNFL_IN_TREE)
> Source File: d:\xpsprtm\base\fs\filtermgr\filter\contextsup.c, line
> 468
>
> 2) If I call FltObjectDereference on a context I get this error
> immediately during the call on the first one:
>
> Assertion failed: ((PFLT_OBJECT)(FltObject))->RundownRef.Count >=
> EX_RUNDOWN_COUNT_INC
> Source File: d:\xpsprtm\base\fs\filtermgr\filter\syncsup.c, line 113
>
> 3) If I call FltDeleteContext on each context then I get the leaks error
> from the verifier, the same as not calling anything at all.
>
> Can someone give me any idea of what is going on? What does it want from
> me?
>
>