http://bugs.winehq.org/show_bug.cgi?id=16592
--- Comment #14 from G. Paul Ziemba p-wine-bugs@ziemba.us 2009-01-17 01:08:17 --- Created an attachment (id=18747) --> (http://bugs.winehq.org/attachment.cgi?id=18747) debug log
Here is the output with WINEDEBUG set to "volume,file" from wine-1.1.10 without my change to GetVolumeInformationW(). (I don't think anything related to this issue has changed between 1.1.10 and 1.1.12, but can rebuild 1.1.12 and rerun if necessary).
~/.wine/dosdevices is set up like this:
42:paul@hairball% lls ~/.wine/dosdevices/ total 4 2 drwxr-xr-x 2 paul sw 512 Dec 24 22:49 ./ 2 drwxr-xr-x 4 paul sw 512 Jan 16 22:42 ../ 0 lrwxr-xr-x 1 paul sw 10 Dec 16 08:23 c:@ -> ../drive_c 0 lrwxr-xr-x 1 paul sw 10 Dec 16 09:34 com1@ -> /dev/cuad0 0 lrwxr-xr-x 1 paul sw 10 Dec 16 08:36 com3@ -> /dev/cuau0 0 lrwxr-xr-x 1 paul sw 13 Dec 21 21:44 d:@ -> /mnt/93-truck 0 lrwxr-xr-x 1 paul sw 8 Dec 21 21:57 d::@ -> /dev/md1 0 lrwxr-xr-x 1 paul sw 6 Dec 24 22:48 e:@ -> /cdrom 0 lrwxr-xr-x 1 paul sw 8 Dec 24 22:48 e::@ -> /dev/cd0 0 lrwxr-xr-x 1 paul sw 1 Dec 16 08:23 z:@ -> /
The "D" drive is a (virtual) CDROM drive (results are the same with a real CDROM drive).
What's going on is that the application is looking for its CD in any "REMOVABLE" drive. If you grep for GetVolumeInformationW in the debug trace, you will see the failed attempt to look up information about D:.
When I was debugging this problem initially, I added some printfs to GetVolumeInformationW and found that the else clause of the first test in that function was copying the backslash from root[0] to device[4].
I had not turned on "file" tracing in my earlier debugging, but I now notice that before the call to GetVolumeInformationW there seems to be some attempt to create a file L"\\.\\:". I don't understand the significance of this attempt - I expect it would fail on Windows because the CDROM is readonly, but maybe there is some strange magic going on. I don't have experience with the Windows API so maybe it's some idiom familar to Win programmers.