I think this will probably work if send_sample_data(), with dropped DSoundRenderer_Max_Fill will be waiting for 10ms on flush_event when either 'free' or locked buffer size is 0 (instead of depending on get_write_pos status which can be made void in this case).
Right, yeah. Sorry I didn't see that immediately. I think that's also a problem with 1/4 here anyway.