dtgreene: If you have two files on an NTFS drive that differ only in case, how does Windows react when you attempt to access one of them?
I'd be curious about that too... or any other effects of saving a file which requires NTFS's POSIX personality (eg. using backslashes or colons in filenames), then looking at it through its Win32 personality.
(Like the NT kernel, NTFS was designed to allow modular frontends, so Windows NT could natively support Win32, OS/2, and UNIX apps simultaneously. On the kernel side, the OS/2 frontend is long dead, but WSL is the latest incarnation of their UNIX frontend.)
Heck, I'd be curious to see what the Linux ntfs-3g driver does if you feed it an NTFS filesystem containing null bytes in filenames, since
apparently, NTFS uses Pascal-style strings (length+data) internally rather than C-style strings (data + null terminator) and the lower-level APIs allow paths containing null bytes.
To quote the post I linked:
For example, if you get the object manager into the mix (through redirecting via a mount point for example) only the following characters are illegal in the object manager: [table here]
Quite a difference. Note that even NUL is valid as the NT kernel uses counted strings. The backslash is only invalid because without that there’d be no path separator. Obviously outside of NUL all these characters can be put into a Rooted Local Device path.