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.

Does the clean up of previous Context gets called when we use FLT_SET_CONTEXT_REPLACE_IF_EXISTS?

henrik_meidahenrik_meida Member Posts: 118
edited December 2021 in NTFSD

If we use FLT_SET_CONTEXT_REPLACE_IF_EXISTS with FltSetxxxContext, Will the clean up callback of previous context gets called?

Lets assume two cases:

  1. The reference count of previous context is 1 (because of FltAllocateContext)
  2. The reference count of previous context is more than 1

Comments

  • rod_widdowsonrod_widdowson Member - All Emails Posts: 1,215

    The callback will happen when the count goes to zero. If a context is removed (for instance by a replacement), then the reference count is decremented - the fact of being attached adds a reference count.

    I'm not sure I understand your two cases. FltAllocateContext gives you a context back with a reference count of one If you then attach it then it now has a reference of two. It is usual to then FltReleaseContext before your callback exits (leaving a reference count of 1).

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