Davide Beatrici (@davidebeatrici) commented about dlls/winepulse.drv/mmdevdrv.c:
if (!get_pulse_name_by_guid(guid, pulse_name, &dataflow)) return AUDCLNT_E_DEVICE_INVALIDATED;
- if (dataflow != eRender && dataflow != eCapture)
return E_INVALIDARG;
- *out = NULL;
I wonder whether this is the actual behavior on Windows.
`winepulse` is the only driver that sets the pointer to `NULL` (and only after validating the device).