[PATCH 1/1] kernel32: Implement GetVolumePathName (resend 2).
Erich E. Hoover
ehoover at mines.edu
Thu Dec 22 13:41:05 CST 2011
This patch implements GetVolumePathName by using the full folder
path and working backward until stat() returns a different device. I
encountered issues with having this function unimplemented after
installing Portal 2 and attempting to launch the game for the first
time (the "completing installation" failed). After looking into the
issue, I found that steam has been updated in such a way that the
"first run installation" calls CreateFile using FILE_OPEN_BY_FILE_ID
(lookup by inode). Since my steam installation is on a different
filesystem than my root partition, this meant that steam passed the
wrong root search path to CreateFile and resulted in steam being
unable to locate its files.
To clarify a couple of use cases:
1) If only one file system is encountered then the base path is
returned ("C:\windows\system32\" becomes "C:\")
2) If a symbolic link or mount-point causes a folder to be on a
different file system then the most basic path on the same file system
is returned ("C:\windows\system32\" becomes "C:\windows\" when
"windows" is a link or mount-point residing on a different drive)
kernel32: Implement GetVolumePathName.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 4410 bytes
Desc: not available
More information about the wine-patches