I noticed that in Win2008 R2, the MDLs I get in my stor miniport do always have the buffer mapped to system space. I then examined the MDL at classpnp!ServiceTransferRequest and the MDL is already mapped there. I suspect the mapping adds unnecessary overhead to the IO. Is there an explanation for that behavior? I’ll check Win2008 and Win2003 to see if they are different.
These IRPs are for non-cached, raw disk IO.