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/
File System Behavior Overview - PDF from Microsoft
http://download.microsoft.com/download/4/3/8/43889780-8d45-4b2e-9d3a-c696a890309f/file system behavior overview.pdf
The documentation contains tables that summarizes the conditions in which oplocks are broken. Everything was going fine until I reached "2.3.2 - IRP_MJ_READ", which is supposed to list the conditions a given oplock would be broken when processing IRP_MJ_READ. However, the first line of this table seems inconsistent for me when it mentions about Level 1 and Batch oplock, saying:
Broken on IRP_MJ_READ when:
The question is: How can a IRP_MJ_READ request occur on a different oplock key if an exclusive oplock would break when a IRP_MJ_CREATE happens to get a different oplock key?
From my understanding, the oplock is not broken on IRP_MJ_READ, but on IRP_MJ_CREATE.
What am I missing?
Thanks in advance.
Fernando Roberto da Silva
DriverEntry Kernel Development
|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|