I have found that Windows (at least version 8) issues a Block Limits VPD inquiry to a Storport virtual miniport, but ignores the value returned in "MAXIMUM TRANSFER LENGTH". I regularly get READ/WRITE SRB's with
DataTransferLength's greater than the value I advertise. (Please note that I am aware that "MAXIMUM TRANSFER LENGTH" is measured in blocks and I set it correctly.)
I have also found out that Windows does respect the value set in
HwFindAdapter. Because my virtual adapter purports to support multiple different virtual targets I set this value to
SP_UNINITIALIZED_VALUE and was hoping to limit the
DataTransferLength per target via the Block Limits VPD. Unfortunately this does not seem possible.
It looks like that if I want to limit data transfer lengths to different targets, I will have to break up I/O in my own miniport. I am wondering if any of the experts in this forum have any input on this.
It looks like you're new here. If you want to get involved, click one of these buttons!
|Upcoming OSR Seminars|
|Writing WDF Drivers||21 Oct 2019||OSR Seminar Space & ONLINE|
|Internals & Software Drivers||18 Nov 2019||Dulles, VA|
|Kernel Debugging||30 Mar 2020||OSR Seminar Space|
|Developing Minifilters||27 Apr 2020||OSR Seminar Space & ONLINE|