Windows System Software -- Consulting, Training, Development -- Unique Expertise, Guaranteed Results
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/
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! | ||
Internals & Software Drivers | 19-23 June 2023 | Live, Online |
Writing WDF Drivers | 10-14 July 2023 | Live, Online |
Kernel Debugging | 16-20 October 2023 | Live, Online |
Developing Minifilters | 13-17 November 2023 | Live, Online |
Comments
Hi Dejan-
Fsutil uses the documented FSCTL_MANAGE_BYPASS_IO IOCTL to query BypassIO support for a given volume. Can you please post the output from
fsutil bypassio state <driveletter> /v
from the system in question?Thanks in advance,
Dave Buches
Windows CoreFS Dev
This is the output:
BypassIo on "C:\Users\Dejan\Desktop" is supported.
Storage Type: SATA
Storage Driver: Not BypassIo Compatible
Driver Name: volmgr.sys
It is this volmgr.sys that I am curious about. Even BPIO enable IOCTL
succeeds on this system for a file, no errors at all. But obviously it
would not work.
Dejan.
Hi Dejan
There are a couple of things that are contributing to some confusion here.
The first is that the currently available documentation doesn't do a great job of explaining that it is possible to enable bypass-IO on a file hosted on a volume where the filter stack supports bypass-IO, but the underlying storage stack does not. In such a scenario (which I suspect is what you're seeing), reads for bypass-IO enabled files will bypass the filter stack, but still be sent down the volume stack. I will file a documentation bug to better explain this.
The second is that FsUtil wasn't providing much help in understanding this. This has been addressed with more recent builds of Windows (this is output from one of my machines running Windows 11 22H2):
Dave Buches
Windows CoreFS Dev
Thanks, that partially explains the output.
Which API/IOCTL can we use to query the volume stack for BPIO support? I
have tried using the BPIO query IOCTL (not FSCTL) but it does not fail
either.
Regards, Dejan.
Hi Dejan
If the volume stack supports BPIO, you should see the
FSBPIO_OUTFL_COMPATIBLE_STORAGE_DRIVER
bit inFS_BPIO_OUTPUT::OutFlags
forFS_BPIO_OP_ENABLE, FS_BPIO_OP_QUERY
, andFS_BPIO_OP_GET_INFO
operations.Dave Buches
Windows CoreFS Dev