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

Home NTFSD
Before Posting...
Please check out the Community Guidelines in the Announcements and Administration Category.

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/


How to acknowledge Win7 oplocks and get NewOplockLevel pended?

Fernando_RobertoFernando_Roberto Member - All Emails Posts: 196

Hi there!

When you have a legacy Level 1 oplock broken with FILE_OPLOCK_BROKEN_TO_LEVEL_2, you get the FSCTL_OPLOCK_BREAK_ACKNOWLEDGE IRP pended, so that you can be notified whenever the Level 2 oplock breaks. That means you can acknowledge the first oplock break and wait for the new oplock level to be broken using only one IRP.

As far as I could understand, this is not possible when using Win7 oplocks. When you have an RW oplock broken to R (from REQUEST_OPLOCK_OUTPUT_BUFFER.NewOplockLevel), you must first acknowledge the oplock break, and this IRP will always complete, then you must request a new R oplock that will be pended until the oplock breaks to none.

Is that true?
Am I missing anything?

TIA


Fernando Roberto da Silva
DriverEntry Kernel Development
http://www.driverentry.com.br

Comments

Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

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