Dimitrie O. Paun wrote:
Eric,
I think these values (*.drv) sit under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\MCI and not under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\MCI32 as you suggested.
On NT, MCI key is for 16 bit drivers and MCI32 key is for 32 bit drivers. The registry key for Win9x is not the same (it's HKML\System\CurrentControlSet\Control\MediaResources\mci). And most of the programs for Win9x still want to advertize their drivers in system.ini and not especially in the registry, so we'll have to provide some backup for that too.
And to add the final touch, native drivers are 16bits (even on NT, at least 'til 2k, didn't check on XP), wine's are 32 bits. Wine current code should take of this (ie load a 16 bit driver when a 32 bit was requested, and do all the 16 <=> 32 transformation).
So, what I'd suggest is to support all the schemes for configuring drivers, in this order of (decreasing) priority: registry-NT key (16+32), registry-Win9x key (16+32), system.ini (16+32).
We also need to be consistent about this for all the drivers (and not only the MCI ones), which mean a deeper look at the code (video, acm...). I also think, since we're about to use the native registry settings, that we need to support the "Disabled" key in driver configuration, otherwise we might get lots of errors (for not correctly working devices).
I won't have too much time to look at this in details right now, so if someone wants to jump in, I'll be happy to give him (her ?) a hand.
A+