https://bugs.winehq.org/show_bug.cgi?id=42176
Bug ID: 42176 Summary: Magic School Bus - Dinosaurs claims audiocd is busy due to MCICDA_Open failure Product: Wine Version: 2.0-rc4 Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: winmm&mci Assignee: wine-bugs@winehq.org Reporter: z.figura12@gmail.com Distribution: ---
Created attachment 56798 --> https://bugs.winehq.org/attachment.cgi?id=56798 output with WINEDEBUG=+file,+mci,+mcicda,+driver,+msgbox
Magic School Bus Explores in the Age of Dinosaurs, an old educational game, fails to launch, claiming:
The CD Audio device is in use by another application. Please, close that application and try again.
I've checked winecfg—the cd is mounted to the L: drive. So I did a relay trace and eventually found the problem appeared to be due to the MCICDA_Open() function returning an error code of 0x123, which is MCIERR_MUST_USE_SHAREABLE. This is returned because the function attempts to call CreateFileW with the path "\.\I:", which fails with 0xc0000022, aka STATUS_ACCESS_DENIED. The drive letter is notable—the function appears to work by iterating through every drive letter from \.\A: to \.\Z: until it finds one whose drive type is DRIVE_CDROM. So there appears to be at least two problem here: (1) I: is very clearly the wrong drive [it is a CD drive, but currently has a different game in it which I was working on] (2) that either MCICDA_Open or CreateFileW should not be returning an error in this case—I did try manually changing the drive letter to start at L, and it failed with the same error, so the program appears to be expecting success.