For DirectSound we create a thread. ASIO callbacks come from a thread controlled by the soundcard driver. WaveOut has several callback models. Window uses the GUI thread to handle callbacks, WaveOutEvent creates its own thread, and Function callbacks come on threads created by the driver.
Mark