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/
In a Storport virtual miniport is it possible to have multiple concurrent SCSI SRB's for the same LBA, perhaps via overlapping ranges? In particular is it possible to have multiple concurrent SCSI WRITE's for the same LBA?
I have a Storport virtual miniport and I am trying to fully understand the Storport concurrency model so that I can correctly implement synchronization. My understanding is that in a virtual Storport no locks are taken for StartIo so any required synchronization has to be done in the miniport.
In my miniport I handle synchronization as it relates to my driver's data structures. However a more subtle question is whether I need to handle synchronization for LBA ranges. Suppose that my miniport can handle 2 or more concurrent SRB's for unrelated ranges without any synchronization (e.g. an SRB for LBA 42 and an SRB for LBA 1042). Suppose further that my miniport cannot handle 2 or more concurrent SRB's for overlapping ranges without synchronization (e.g. an SRB for range 0-1 and an SRB for range 1-2).
My expectation is that it would be counter-productive for file systems (or other system components) to issue such requests, but I do not know.
|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!|
|Developing Minifilters||24 May 2021||Live, Online|
|Writing WDF Drivers||14 June 2021||Live, Online|
|Internals & Software Drivers||27 September 2021||Live, Online|
|Kernel Debugging||15 November 2021||Live, Online|