windows.GetFinalPathNameByHandle: Support volumes mounted as paths
commita0f1825c53f5bbc62760b830e8d25499ace5884a
authorRyan Liptak <squeek502@hotmail.com>
Mon, 22 Apr 2024 14:46:09 +0000 (22 07:46 -0700)
committerAndrew Kelley <andrew@ziglang.org>
Wed, 24 Apr 2024 20:44:09 +0000 (24 13:44 -0700)
tree0d67ff9d13cb3a786e067f10a4d07f99cf616317
parent1a6485d111d270014f57c46c53597a516a24dc47
windows.GetFinalPathNameByHandle: Support volumes mounted as paths

A volume can be mounted as a NTFS path, e.g. as C:\Mnt\Foo. In that case, IOCTL_MOUNTMGR_QUERY_POINTS gives us a mount point with a symlink value something like `\??\Volume{383da0b0-717f-41b6-8c36-00500992b58d}`. In order to get the `C:\Mnt\Foo` path, we can query the mountmgr again using IOCTL_MOUNTMGR_QUERY_DOS_VOLUME_PATH.

Fixes #19731
lib/std/os/windows.zig