Can't anyone tell me what "\??\" means in a path name?


  1. Posts : 95
    Windows 7 Professional 64-bit
       #1

    Can't anyone tell me what "\??\" means in a path name?


    I first noticed the weird text string "\??\" preceding a path name in my NtBtLog.txt boot log files for 64-bit Windows 7 SP1, and then also found other instances of the same weird pathnames elsewhere. A full example would be something like:

    Code:
    \??\C:\Windows\system32\drivers\ElRawDsk.sys
    I've been striving for quite some time to learn exactly what that substring indicates, but go ahead and try entering it into a Google search - Google ignores it entirely!! For example, if you enter (with the quote marks) "\??\C:", Google will patiently try to explain what the letter "C" means!

    I also asked Microsoft support what it means, but they still haven't bothered replying.

    So I turn to you, oh wise SevenForums members: What, exactly, does that "\??\" mean?


    Thanks!
      My Computer


  2. Posts : 2,497
    Windows 7 Pro 64 bit
       #2

    This is a prefix that allows a Unicode pathname to exceed the normal limit of 260 characters. It only works with some system functions. I have seen few references to this other than programmers documentation.

    Edit: This isn't of much use to anyone but programmers.
      My Computer


  3. Posts : 95
    Windows 7 Professional 64-bit
    Thread Starter
       #3

    LMiller7 said:
    This is a prefix that allows a Unicode pathname to exceed the normal limit of 260 characters. It only works with some system functions. I have seen few references to this other than programmers documentation.

    Edit: This isn't of much use to anyone but programmers.

    Thank you kindly, LMiller7! Once you reminded me of pathname maximum length issues (I'm a programmer myself -- though rarely under Windows -- and I've run into the issue and learned about it before, but it slipped my mind), I was able to greatly narrow my research into the "\??\" puzzle. However, the mystery remains!

    Although standard Windows Explorer pathnames cannot exceed approximately 255-260 characters, under other circumstances, such as in many Windows API functions, the maximum path length can be much longer, up to 32,767 Unicode characters.

    So in order to specify that you're using extra-length pathname, for example with UNC (Universal Naming Convention) pathnames, you need to begin such a pathname with the prefix "\\?\".

    But that cannot be the full explanation for what I keep seeing as described in my OP, first because the substring in question has only one backslash at first and then has two question marks in a row ("\??\").

    Second, as in the actual example I provided in my OP, every one of those mysterious pathnames is quite short, all of them reaching to %SYSTEMROOT%\system32\drivers and no deeper. Surely 260 characters would be plenty under most any circumstances. More relevant still is the curious fact that in many (but not all) cases where I see a pathname with the prefix "\??\", if I search the computer for the filename specified in the path -- e.g., from the example in my OP it would be "ElRawDsk.sys" -- no such file exists, even when I make sure to change the Windows Explorer settings such that system files are not hidden! Yet it cannot be that "\??\" indicates simply that the filename in question could not be found, since often times the files do exist!

    No, there has to be some other explanation - but I still don't know what it is! Can anyone else shed light on this puzzle?

    Thanks!
      My Computer


 

  Related Discussions
Our Sites
Site Links
About Us
Windows 7 Forums is an independent web site and has not been authorized, sponsored, or otherwise approved by Microsoft Corporation. "Windows 7" and related materials are trademarks of Microsoft Corp.

© Designer Media Ltd
All times are GMT -5. The time now is 03:07.
Find Us