Huw Davies (@huw) commented about dlls/mmdevapi/session.c:
+ return NULL; + + ret->IAudioSessionControl2_iface.lpVtbl = &AudioSessionControl2_Vtbl; + ret->IChannelAudioVolume_iface.lpVtbl = &ChannelAudioVolume_Vtbl; + ret->ISimpleAudioVolume_iface.lpVtbl = &SimpleAudioVolume_Vtbl; + + ret->ref = !client; + ret->client = client; + + if (client) { + ret->session = client->session; + IAudioClient3_AddRef(&client->IAudioClient3_iface); + } + + return ret; +} You're now ending up with two different versions of this function. I think what you want to do is to start by migrating all of the drivers to use this first and then move `GetService()`.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/2908#note_34337