Windows System Software -- Consulting, Training, Development -- Unique Expertise, Guaranteed Results

Before Posting...
Please check out the Community Guidelines in the Announcements and Administration Category.

More Info on Driver Writing and Debugging

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:

FltMgr mount point name query resolution?

Dejan_MaksimovicDejan_Maksimovic Member - All Emails Posts: 374
edited December 2020 in NTFSD

When I query normalized file name for a mount point (where the user is not specifying FILE_OPEN_REPARSE_POINT flag), wasn't FltMgr supposed to resolve mount points between volumes as well? (in pre-create)

This situation was extremely rare, so I cannot say I remember it being different. But it appears to be the case on Windows 7 as well. I can't help thinking that is another broken FltGetFileNameInformation path :(


Post edited by Dejan_Maksimovic on


  • rod_widdowsonrod_widdowson Member - All Emails Posts: 1,173

    I have a vague memory that this is a known problem (as in known by the filter manager team) but no more than a vague memory. Maybe one of them lurks on this list?

  • Dejan_MaksimovicDejan_Maksimovic Member - All Emails Posts: 374

    Well, this is definitely a wider question than even I expected (and I am never surprised by FltMgr name resolution issues, as we now have an almost 100KB FltMgrName.c file which is only for helping cases where FltMgr does not work).

    It works differently, with some different errors in rare cases, and considering how rare cross-volume mount points are.. this is hard to figure.

    Anyway, anyone have a clue how I can get a normalized file name for a cross-volume mount point on pre-win8 OSes, in pre-Create?
    According to this, on Win7 it will not even return reparse point information.

    The only thing that comes to mind is opening a file by issuing a create to the top of the stack, and avoiding our own creates, then issuing FSCTL_GET_REPARSE_POINT? I should note that in (almost all) cases where FltGetFileNameInformation fails (for normalized file names in pre-create), even ZwQueryInformationFile with FileNormalizedNameInformation will fail as well, as will FltGetFileNameInformation on a file object that we get from FltCreateFile(Ex/2)/IoCreateFIle calls.

    Unfortunately, I have a filter which requires normalized file name in pre-create and opened name just cannot work.

Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

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!
Writing WDF Drivers 7 Dec 2020 LIVE ONLINE
Internals & Software Drivers 25 Jan 2021 LIVE ONLINE
Developing Minifilters 8 March 2021 LIVE ONLINE