http://bugs.winehq.org/show_bug.cgi?id=28093
--- Comment #2 from Jörg Höhle hoehle@users.sourceforge.net 2011-09-19 09:42:05 CDT --- Interim workaround as hinted: Have GetBufferSize >> typical write size.
Wine's winmm:PlaySound and mciwave use 333ms buffers.
Thus calling Initialize with duration 1-2s in WINMM_OpenDevice would be resonable for Wine's internal needs. 2-5 seconds is also the buffering that mciwave is said to be using, so that's not a bad choice. mciwave is data-driven by dwSuggestedBufferSize and I've seen 500ms and even 1s suggestions in .avi files, which Wine's mciavi would use per WAVEHDR. So 2s sounds like a minimum for Initialize.
Alas, the 2s patch does not work without the one to bug #27937.