http://bugs.winehq.org/show_bug.cgi?id=16592
Summary: Ford service manual viewer fails to detect CD (fix attached) Product: Wine Version: unspecified Platform: PC OS/Version: FreeBSD Status: UNCONFIRMED Severity: normal Priority: P2 Component: kernel32 AssignedTo: wine-bugs@winehq.org ReportedBy: p-wine-bugs@ziemba.us
Created an attachment (id=18120) --> (http://bugs.winehq.org/attachment.cgi?id=18120) patch to handle null-rootpath equivalent in GetVolumeInformationW
wine-1.1.10
I installed the Ford 1993-1994 truck service manual viewer from CD. The viewer application requires that the CD be present in a drive before it will show service data.
The viewer application c:/FORD/PUBS/programs/VIEW16.EXE complains that there is no CD present, even though there is. (yes, links for d: and d:: were made correctly in .wine/dosdevices).
It turns out that the application calls GetVolumeInformationW with a "root" argument of "\:". In this case, GetCurrentDirectoryW returns the desired root path, but since root is not null, the code in GetVolumeInformationW uses "\" as the drive letter instead (and fails).
Patching GetVolumeInformationW to treat root == "\:" the same as the null case results in the application successfully detecting the CD and operating properly.
Documentation of GetVolumeInformationW on MSDN seems to indicate that there is a broader range of possible formats for the root parameter than the wine implementation currently handles, so perhaps a more extensive fix is needed for the general case.