tag:blogger.com,1999:blog-4838136820032157985.post3944151508743030983..comments2024-03-28T17:48:16.347-07:00Comments on Project Zero: The Definitive Guide on Win32 to NT Path ConversionUnknownnoreply@blogger.comBlogger4125tag:blogger.com,1999:blog-4838136820032157985.post-12757354231553248032016-08-26T07:06:05.057-07:002016-08-26T07:06:05.057-07:00Yep I tried Long Path Tool and it worked for me.Yep I tried Long Path Tool and it worked for me.Anonymoushttps://www.blogger.com/profile/06592752689170453281noreply@blogger.comtag:blogger.com,1999:blog-4838136820032157985.post-14072157108518076652016-07-23T10:50:17.724-07:002016-07-23T10:50:17.724-07:00"\\.\" and "\\?\" paths are bo..."\\.\" and "\\?\" paths are <em>both</em> RtlPathTypeLocalDevice. GetFullPathName handles them equivalently. The RtlPathTypeRootLocalDevice type is exactly as its name suggests: the root locale-device paths "\\." and "\\?" without a trailing slash. <br /><br />In the ReactOS source I see that it does not support "\??" in the Windows API, so I think it's safe to say Windows XP doesn't support it either. I know for sure that it does work in Windows 7. As you noted it gets categorized as RtlPathTypeRooted. Thus it should generally be avoided because GetFullPathName will mess it up by prepending the current drive to create what it thinks is a fully-qualified path. <br /><br />A raw local-device path (i.e. "\\?\") does need to be Unicode if you plan to support Windows 7. The old design uses the StaticUnicodeString (backed by the StaticUnicodeBuffer) in the TEB to decode ANSI strings, which limits ANSI paths to MAX_PATH characters. In Windows 10 this is replaced with a dynamically allocated buffer. I assume it's the same in Windows 8.1 since you say you've tested it.eryksunhttps://www.blogger.com/profile/15437401811057805475noreply@blogger.comtag:blogger.com,1999:blog-4838136820032157985.post-85711154433485234652016-03-27T02:01:41.475-07:002016-03-27T02:01:41.475-07:00I recommend you to try Long Path Tool program to f...I recommend you to try Long Path Tool program to fix this problemJohn Fraghttps://www.blogger.com/profile/17168458830537279663noreply@blogger.comtag:blogger.com,1999:blog-4838136820032157985.post-83885010163568225222016-03-01T04:43:52.544-08:002016-03-01T04:43:52.544-08:00I can guarantee that, at least up to Windows Serve...I can guarantee that, at least up to Windows Server 2003, the command prompt didn't care that a drive letter wasn't really a letter. I recall that Explorer didn't care much, either. Try it yourself creating drive non-letters with DefineDosDeviceGiulia Qhttps://www.blogger.com/profile/14412616311697962455noreply@blogger.com