The Windows kernel has a "DOS Devices namespace" \DosDevices\
which is basically where anything you can open with CreateFile
resides. (QueryDosDevice
is a function which gives you all the members of that namespace.)
Because it's such a commonly used path, \??\
also redirects to that namespace. So, to the kernel, the path C:\Windows
is invalid -- it should really be written as something like \??\C:\Windows
. That's where this notation comes from.