[PATCH 1/1] kernel32: Implement GetVolumePathName (resend 2).

Erich E. Hoover ehoover at mines.edu
Thu Dec 22 13:41:05 CST 2011

Real Name:
    Erich Hoover

    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...
Name: 0001-kernel32-Implement-GetVolumePathName.patch
Type: text/x-patch
Size: 4410 bytes
Desc: not available
URL: <http://www.winehq.org/pipermail/wine-patches/attachments/20111222/455ca423/attachment.bin>

More information about the wine-patches mailing list