WebSafe 3.7stackoverflow.com
|
|
🏠
Skip to main content
Removing the \\.\ part altogether; focusing my question
Source Link
Ilya
  • 5.7k
  • 2
  • 33
  • 57

The MSDN document Naming Files, Paths, and Namespaces talks about the \\?\ prefix. To quote:

For file I/O, the "\?" prefix to a path string tells the Windows APIs to disable all string parsing and to send the string that follows it straight to the file system.

Experimentation showed me that the \??\ prefix has the same effect, both disabling path parsing (.. handling) and enabling paths longer than MAX_PATH.

Are those just opaque stringsThe MSDN refers to \\? as the "Win32 file namespace", or do they actually make senseso does it known purely by the Win32 usermode API and translated to \?? in light of something youthe NT namespace? And anyway, through Winobj I see GLOBAL?? in Winobj? I've noticed some talk about "namespaces" but failed to make sense of itthe NT namespace, not ??.

The MSDN document Naming Files, Paths, and Namespaces talks about the \\?\ prefix. To quote:

For file I/O, the "\?" prefix to a path string tells the Windows APIs to disable all string parsing and to send the string that follows it straight to the file system.

Experimentation showed me that the \??\ prefix has the same effect, both disabling path parsing (.. handling) and enabling paths longer than MAX_PATH.

Are those just opaque strings, or do they actually make sense in light of something you see in Winobj? I've noticed some talk about "namespaces" but failed to make sense of it.

The MSDN document Naming Files, Paths, and Namespaces talks about the \\?\ prefix. To quote:

For file I/O, the "\?" prefix to a path string tells the Windows APIs to disable all string parsing and to send the string that follows it straight to the file system.

Experimentation showed me that the \??\ prefix has the same effect, both disabling path parsing (.. handling) and enabling paths longer than MAX_PATH.

The MSDN refers to \\? as the "Win32 file namespace", so does it known purely by the Win32 usermode API and translated to \?? in the NT namespace? And anyway, through Winobj I see GLOBAL?? in the NT namespace, not ??.

Removing the \\.\ part altogether
Source Link
Ilya
  • 5.7k
  • 2
  • 33
  • 57

The MSDN document Naming Files, Paths, and Namespaces talks about the \\?\ prefix. To quote:

For file I/O, the "\?" prefix to a path string tells the Windows APIs to disable all string parsing and to send the string that follows it straight to the file system.

Experimentation showed me that the \??\ prefix has the same effect, both disabling path parsing (.. handling) and enabling paths longer than MAX_PATH.

Are those just opaque strings, or do they actually make sense in light of something you see in Winobj? I've noticed some talk about "namespaces" but failed to make sense of it.

Bonus question: What about the \\\\.\\ prefix? I've noticed CreateFileW can open \\\\.\\C:\Windows\..\Windows\notepad.exe so it does perform path parsing, and also fails on long paths.

The MSDN document Naming Files, Paths, and Namespaces talks about the \\?\ prefix. To quote:

For file I/O, the "\?" prefix to a path string tells the Windows APIs to disable all string parsing and to send the string that follows it straight to the file system.

Experimentation showed me that the \??\ prefix has the same effect, both disabling path parsing (.. handling) and enabling paths longer than MAX_PATH.

Are those just opaque strings, or do they actually make sense in light of something you see in Winobj? I've noticed some talk about "namespaces" but failed to make sense of it.

Bonus question: What about the \\\\.\\ prefix? I've noticed CreateFileW can open \\\\.\\C:\Windows\..\Windows\notepad.exe so it does perform path parsing, and also fails on long paths.

The MSDN document Naming Files, Paths, and Namespaces talks about the \\?\ prefix. To quote:

For file I/O, the "\?" prefix to a path string tells the Windows APIs to disable all string parsing and to send the string that follows it straight to the file system.

Experimentation showed me that the \??\ prefix has the same effect, both disabling path parsing (.. handling) and enabling paths longer than MAX_PATH.

Are those just opaque strings, or do they actually make sense in light of something you see in Winobj? I've noticed some talk about "namespaces" but failed to make sense of it.

Source Link
Ilya
  • 5.7k
  • 2
  • 33
  • 57

Is there a difference between \??\ and \\?\ paths?

The MSDN document Naming Files, Paths, and Namespaces talks about the \\?\ prefix. To quote:

For file I/O, the "\?" prefix to a path string tells the Windows APIs to disable all string parsing and to send the string that follows it straight to the file system.

Experimentation showed me that the \??\ prefix has the same effect, both disabling path parsing (.. handling) and enabling paths longer than MAX_PATH.

Are those just opaque strings, or do they actually make sense in light of something you see in Winobj? I've noticed some talk about "namespaces" but failed to make sense of it.

Bonus question: What about the \\\\.\\ prefix? I've noticed CreateFileW can open \\\\.\\C:\Windows\..\Windows\notepad.exe so it does perform path parsing, and also fails on long paths.