Huw Davies (@huw) commented about dlls/winealsa.drv/mmdevdrv.c:
- params.duration = duration;
 - params.period = period;
 - params.fmt = fmt;
 - params.channel_count = &channel_count;
 - params.stream = &stream;
 - ALSA_CALL(create_stream, ¶ms);
 - free(name);
 - if(FAILED(params.result)){
 sessions_unlock();return params.result;- }
 - This->vols = HeapAlloc(GetProcessHeap(), 0, channel_count * sizeof(float));
 
This is changing the allocator for `vols`, so you'll need commits that change that first.
As this MR is already too long, let's split this into a new one and leave the first seven or eight commits here.