i am trying to debug a filter driver in vista. i m facing some some context related problems. some contexts got lost in the logic and can not be freed so at unloading time my driver is not responding.
i come to know that vista can dump these information at unloading time…
but when i tried !fltobj 8 1 i got a string that “Rundown log tracing not enabled on this version of FLTMGR.SYS”
i m using vista ultimate edition. it is in demo mode now.
i would be thankful if u guys put some light in this that how can i enable rundown log tracing in vista.
regards
harish
You can’t enable it, it’s a compile time thing and it’s disabled in all builds.
What you can do is enable driver verifier for your minifilter and filter manager will keep track of a lot of references (including contexts) and will let you know if you leaked something at unload time.
Regards,
Alex.
This posting is provided “AS IS” with no warranties, and confers no rights.
Thankx for the reply.
but in the help of Filter Manager Debugger Extentions it is documented.
fltobj [addr] [detail] Dump FLT_OBJECT
where [flags] specify what information to dump:
0x00000001 Basic object information
0x00000002 Rundown log information on the object
my driver got hang in unload time. It is not unloaded yet so how can we find leaks. Driver verifier is giving various pool allocation related data but things are not so much clear. i thought “run down log” will help me in this.
did you know some other ways so that i can find various contexts which are lost in the logic. do i need to maintain a list of allocated contexts and free them at unload time?
if i only free them at unload time then there are chances that user might not unload the driver at all and leaked context keep growing on… then which should be the best time when i should traverse context list and free them?
how do we determine that a particular context is associated with a valid stream or file object ?
i will be grateful if u people shed some lite on these questions. i m very much confused now.
regards
harish bisht