Windows System Software -- Consulting, Training, Development -- Unique Expertise, Guaranteed Results

Home NTFSD

More Info on Driver Writing and Debugging


The free OSR Learning Library has more than 50 articles on a wide variety of topics about writing and debugging device drivers and Minifilters. From introductory level to advanced. All the articles have been recently reviewed and updated, and are written using the clear and definitive style you've come to expect from OSR over the years.


Check out The OSR Learning Library at: https://www.osr.com/osr-learning-library/


Before Posting...

Please check out the Community Guidelines in the Announcements and Administration Category.

Cleanup callback of FLT_STREAM_CONTEXT vs FLT_STREAMHANDLE_CONTEXT?

henrik_meidahenrik_meida Member Posts: 118
edited November 2021 in NTFSD

So lets say i have set up a cleanup callback for my context in order to free up some buffers (such as filenames allocated via FltGetFileNameInformation)

Based on what i read, FLT_STREAM_CONTEXT is unique per file, so this is my assumption:

FLT_STREAMHANDLE_CONTEXT cleanup callback gets called when every handle on the file gets closed and references to its file object get dereferenced.
FLT_STREAM_CONTEXT cleanup callback gets called when the handle on the file gets closed.

So is this true? And what happens when i use FltAllocateContext, on the post create of a file that was opened previously by the same or another process? Does this return me the first allocated buffer, or a new buffer?

I am trying to optimize my code, as i am using FltGetFileNameInformation in post create to store the filename in the context, but this seems to be causing problem in case that in a system there are a lot of open handles that are not getting closed (high memory usage as i am using NonPagePool to allocateContext, and the paged tag 'FMfn' gets extremely large, more than 220 MB, and this tag is for FltMgr for file names), so i thought maybe by switching to FLT_STREAM_CONTEXT it could reduce this problem a bit.

Post edited by Peter_Viscarola_(OSR) on

Comments

Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. Sign in or register to get started.

Upcoming OSR Seminars
OSR has suspended in-person seminars due to the Covid-19 outbreak. But, don't miss your training! Attend via the internet instead!
Writing WDF Drivers 24 January 2022 Live, Online
Internals & Software Drivers 7 February 2022 Live, Online
Kernel Debugging 21 March 2022 Live, Online
Developing Minifilters 23 May 2022 Live, Online