[Bug 16592] Ford service manual viewer fails to detect CD

wine-bugs at winehq.org wine-bugs at winehq.org
Sat May 15 03:44:22 CDT 2010


http://bugs.winehq.org/show_bug.cgi?id=16592


HQ <cs.tech at comcast.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |cs.tech at comcast.net




--- Comment #26 from HQ <cs.tech at comcast.net>  2010-05-15 03:44:21 ---
>Looks like it might be fixed already with
> f7e6777e6e19ca3be4b84f98baf22ef53ab19f96. Please retest with 1.1.36.

Still broken in 1.1.44.  Also, this bug affects many of the Ford service
apps--not just the version and model-year described here.


> Hmm. I suspect this case (root = "\\:") is undocumented and/or old, but I can't
> prove it. The application came out in the mid-to-late 90's so it's probably
> intended for Win 95 or 98, although I know it also works on Win2K.

> I think the application uses the 16-bit API

The viewer is a 16-bit application which (in 32-bit Windows) runs on the 16-bit
virtual machine (NTVDM.EXE).


> I guess the viewer starts up a dialog with a text like:
> Please insert volume 1993-1994 Truck CD-ROM - Revision 11.0\n into any CD-ROM
> Drive.\n\nPress OK to continue, Cancel to abort.
> Correct? What is the exact text?

Correct.  But the message only appears after you choose a chapter from the
index (which is copied to the HD by the installer).  The viewer application
(VIEW16.EXE) does not check for the CD immediately at launch.


> Could you search the registry (and .ini files) for any reference to "\:" ?

My Windows box does not have this string in the registry and I see no evidence
that the Ford application directly depends on registry access.  The viewer can
be configured by editing the INFO1.INI file in C:\FORD\PUBS\PROGRAMS.  The
default behavior is to search for the service library files on any removable
drive, as indicated by this section of the INI file:

[dealer_env]
reader=4
*=REMOVEABLE,*,any CD-ROM Drive

Though not normally necessary, it is possible to specify a unique DOS device by
replacing the leading asterisk with the device letter.  For example:

D=REMOVEABLE,*,any CD-ROM Drive

I think the syntax here is application-specific, not a global standard (and
again, it works in Windows but not in Wine).  It's also possible to browse the
CD through the Wine alias "d/" and the Wine file manager (which confirms that
the CD is mounted properly and recognized by the host operating system).


> 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.

CreateFile and GetVolumeInformation are Win32 functions, so I guess they are
translated from the original 16-bit equivalent by Wine's own VDM.  Maybe this
CD-ROM access bug is a function call translation error in the Wine VDM.  I dont
know anything about Wine's 16-bit virtual machine.  For the sake of
compatibility testing, can I copy the Microsoft virtual machine from my Windows
installation disc and make Wine use that instead?

For reference:

  "CreateFile Function creates or opens a file or I/O device. The most commonly
used I/O devices are as follows: file, file stream, directory, physical disk,
volume, console buffer, tape drive, communications resource, mailslot, and
pipe. The function returns a handle that can be used to access the file or
device for various types of I/O depending on the file or device and the flags
and attributes specified.  To perform this operation as a transacted operation,
which results in a handle that can be used for transacted I/O, use the
CreateFileTransacted function."

http://msdn.microsoft.com/en-us/library/aa363858(VS.85).aspx

Some other posts which may be related (or inspirational):
__________

For review... CD interfaces in wine
 not ready yet for cvs inclusion (yet), this patch implements two things: 

 - it replaces the wine internal & proprietary cdrom interface (used in MCICDA
and MSCDEX/int2F) with the proper win32 ioctl:s calls

 - it allows opening any device with CreateFile (using the name "\\.\E:") 
 (this is still very hackish, but not worse than what already existed) 

http://www.winehq.org/pipermail/wine-devel/2001-December/003037.html 
___________

[PATCH] ntdll: Implement CDROM_GetDeviceNumber() on Mac OS. 

http://marc.info/?l=wine-patches&m=125616565804390&w=2 
___________

kernel32: Fix GetVolumeInformation[AW] to require trailing \.

http://www.winehq.org/pipermail/wine-cvs/2009-April/055027.html

-- 
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