https://bugs.winehq.org/show_bug.cgi?id=43240 Damjan Jovanovic <damjan.jov(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |source, testcase --- Comment #3 from Damjan Jovanovic <damjan.jov(a)gmail.com> --- Still a bug in Wine 7.1. The proximal cause is in dlls/kernelbase/volume.c function GetVolumeInformationW(). When there is no Wine drive mapping for the *nix mountpoint, the volume's root directory will be a compound path with multiple backslashes, eg. Z:\\tmp\\ in your case. The nt_name in that function becomes \\??\\Z:\\tmp\\. The i variable stops at the end of "\\??\\Z:\\", ignoring the "tmp\\" suffix. The check for i being at the end of the string fails, and since the string contains a 2nd backslash, the function fails early with: SetLastError( ERROR_DIR_NOT_ROOT ); eventually leading to java.nio.file.Files.isWritable() returning false. Under dlls/kernel32/tests/volume.c function test_GetVolumeInformationA() we see how ERROR_DIR_NOT_ROOT is expected even on "C:\\Windows\\". But where is the root cause? 1. Should GetVolumePathName() return Z:\\ instead of Z:\\tmp, since Z:\\tmp is not a mapped drive, so that GetVolumeInformation() gets called with Z:\\ and works? 2. Should GetVolumeInformation() detect non-root paths differently? I think Windows allows mounting without allocating a driver letter, does it allow the mountpoint's long path to be passed to GetVolumeInformation() then? 3. Is the current behaviour already the best we can do, ie. should *nix mountpoints without corresponding drive mapping in Wine be semi-visible and semi-functional to Windows applications like they are now? -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.