Davide Beatrici (@davidebeatrici) commented about dlls/wineoss.drv/oss.c:
WAVEFORMATEXTENSIBLE *fmtex = (WAVEFORMATEXTENSIBLE *)params->fmt; struct oss_stream *stream; oss_audioinfo ai; SIZE_T size;
/* We don't return early as priority is given to the other errors. */
params->result = *params->stream ? AUDCLNT_E_ALREADY_INITIALIZED : S_OK;
if (params->share == AUDCLNT_SHAREMODE_SHARED) {
params->period = def_period;
if (params->duration < 3 * params->period)
params->duration = 3 * params->period;
} else {
if (fmtex->Format.wFormatTag == WAVE_FORMAT_EXTENSIBLE &&
(fmtex->dwChannelMask == 0 || fmtex->dwChannelMask & SPEAKER_RESERVED))
params->result = AUDCLNT_E_UNSUPPORTED_FORMAT;
Please note that this check was missing in the driver.