Robert Reif : winecfg: Added support for auto detecting all drivers by attempting to

Eric Pouech eric.pouech at
Mon Dec 12 14:41:02 CST 2005

> It is not typical for an application to bypass winmm and communicate 
> directly with a driver.  Only a control panel or device manager type 
> application would ever even try something like this.  Winecfg is one of 
> those unusual programs.  Opening a driver more than once will not cause 
> any problems.  The open functions in all the drivers are just stubs.  
> Loading a driver is what causes a drivers state to be initialized and 
> there is no way going through winmm to load the same driver more than 
> once.  Trying to open a specific driver's device through for example 
> waveOutOpen more than once either through winmm or directly to the 
> driver will only allow the first open to succeed because all attempts 
> after the first will see that the device is already opened and fail.
this depends on the driver: for example in wineoss, for the wod part, it 
will work if you specify the same format in the same thread (as we do 
ref counting on open). Winealsa on the other hand should be ok.

However, since winmm doesn't regenerate its internal status after an 
OpenDriver, one cannot use waveOut* to access that driver.
Eric Pouech

More information about the wine-devel mailing list