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/
We can allocate extra create parameters from lookaside list.
Let’s consider next scenario:
Fltregisterfilter - now we have valid pflt_filter.
At each pre-create allocate ecp from lookaside list and attach to callback data
So far so good.
Now I want to unload my filter.
I need to call FltDeleteExtraCreateParameterLookasideList.
However there can still be create operations in progress with my attached ecp - io manager will try to free them to deleted lookaside list.
I can’t call FltDeleteExtraCreateParameterLookasideList after fltunregisterfilter because we need valid filter to delete lookaside list.
So it’s look like I can use ECPs from lookaside list only in fltcreatefileex2 calls - in that case I know when all creates that use lookaside ECPs finished and I won’t start new creates after I decide to unload.
However here https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/fltkernel/nf-fltkernel-fltallocateextracreateparameterfromlookasidelist it is said “ Drivers must free all ECP context structures and lookaside lists they create before unloading. However, if a file system or file system filter driver attaches an ECP to an existing or newly-created ECP_LIST while processing an IRP_MJ_CREATE request, this ECP is automatically cleaned up when the IRP completes.”
So it seems lookaside ECPs can be attached to callback data.
Am I missing something? Is it possible to somehow drain all creates that have lookaside ECPs attached ?
|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!||Kernel Debugging||30 Mar 2020||OSR Seminar Space|
|Developing Minifilters||15 Jun 2020||LIVE ONLINE|
|Writing WDF Drivers||22 June 2020||LIVE ONLINE|
|Internals & Software Drivers||28 Sept 2020||Dulles, VA|