http://bugs.winehq.org/show_bug.cgi?id=26658
Erich Hoover ehoover@mines.edu changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |ehoover@mines.edu
--- Comment #3 from Erich Hoover ehoover@mines.edu 2011-10-03 10:05:23 CDT --- I think this might be related to how steam looks for files.
I'm having a problem right now (new steam version?) where I cannot do the first-launch "completing installation" for Portal 2. I believe that the issue is that steam uses GetVolumePathNameW to find the drive associated with the steam folder and then searches for files by inode within that drive. On Wine we just return the base drive letter right now, so since I have the steam folder on an external drive it freaks out.
Anyway, how I believe this relates to the startup taking forever is that steam is always searching the entire drive for its files (since it is doing an inode-based lookup). So, I think that what we need is a cache of files where NtQueryInformationFile has returned an inode value so that calls to NtCreateFile with FILE_OPEN_BY_FILE_ID can search the "recently returned inode list" before it looks through the entire drive.