[Bug 16592] Ford service manual viewer fails to detect CD (fix attached)
wine-bugs at winehq.org
wine-bugs at winehq.org
Fri Jan 23 11:22:59 CST 2009
http://bugs.winehq.org/show_bug.cgi?id=16592
--- Comment #22 from G. Paul Ziemba <p-wine-bugs at ziemba.us> 2009-01-23 11:22:56 ---
I looked in the registry and the installed files but did not find any
references to a drive "\". I looked over that big debug trace again and I agree
that the application looking up drive "\" is probably an artifact of some
problem that occurs earlier, especially since it also tries to look up drive
"[".
My current hypothesis is that the application has somewhat buggy code such as
the following, and after a loop over drive letters it calls GetVolumeInfo on
whatever value the loop exited with, e.g. (I hope my indentation doesn't get
mangled):
int drivenum = 3; /* start at "C:" */
for (i = 0; i < 26; ++i) {
++drivenum;
type = GetDriveType(drivenum); /* we see these calls in trace */
if ((type = THE_RIGHT_VALUE) && (other stuff??)) {
break;
}
}
root[0] = 'A' -1 + drivenum;
GetVolumeInfo(root, ...); /* we see this in trace, too */
If this is the case, it would explain why the application tries to look up the
drive type on "[" and "\", and would imply that within the loop it is not
obtaining exactly the right values it expects to find for a CDROM on drive D.
I think the application uses the 16-bit API but I'm not sure how to get a
better look at args/return values across that boundary. I wonder if WINE is not
returning what it should for this older API.
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.
More information about the wine-bugs
mailing list