[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