What does a Windows kernel object name starting with \ ?? \ mean mean?

I am maintaining a legacy Windows application with user-space and kernel components. User space passes some file paths using registry keys.

Currently, the code finds the full path to the file, then appends \??\

to it before writing it to the registry, so the path ends with something like \??\C:\foo.bar

. The driver passes this path to InitializeObjectAttributes()

and ZwCreateFile()

, which successfully opens the file (or creates it as appropriate).

I'm familiar with the prefix \\.\

as an alias for \DosDevices\

but not \??\

, and that's not something that can be Googled. Does anyone know what this means?

+3


source to share


1 answer


This is a namespace subdirectory created during the boot process. It contains links to resources available using the Win32 API. At boot time before the system is fully inserted, if this path is specified, it may not resolve without using \ ?? \ in place.



+2


source







All Articles