Techwiki:Behavior Differences
DOS prefixes
In Windows 2003 some of the image paths of processes retrieved with GetModuleFileNameExW
—mainly coming from early start— come prepended with \??\
.
Quoting from Windows Internals (Page 147 in 4th edition):
Windows subsystem DLLs prefix names passed by Windows applications that reference objects in \DosDevices with \?? (for example, C:\Windows becomes \??\C:\Windows).
An incomplete list of well known but strange system process paths in Windows 2003 is listed below:
Process | Process path |
---|---|
CSRSS | \??\C:\WINDOWS\system32\csrss.exe
|
SMSS | \SystemRoot\System32\smss.exe
|
Winlogon | \??\C:\WINDOWS\system32\winlogon.exe
|
Long path overrides that allow 32768 characters to be used by the internal API (Unicode, or Wide char) are "\\?\
", they should not be confused with a DOS path: "\??\
".