2

I saw in this slides that the winmm and directsound in vista is based on wasapi.

Does it means that winmm and directsound actually do their work by calling the functions in WASAPI ?

I fail to find this information after some google search and hope someone here will know.

Min Lin
  • 3,177
  • 2
  • 19
  • 32

1 Answers1

4

With a couple of highly specialized exceptions (directks, ASIO, openal), all audio rendering in Windows goes through WASAPI.

This includes audio rendering via winmm and directsound.

Larry Osterman
  • 16,086
  • 32
  • 60
  • Hi, thank for your reply, but I checked the dsound.dll and winmm.dll with depends, and I did not see any dependence on audioses.dll. If I'm right, I think WASAPI stands for Windows Audio Session API, and if dsound and winmm depends on wasapi it should depend on the audioses.dll. – Min Lin Sep 08 '12 at 13:52
  • 2
    You're right, dsound and winmmd don't directly link to audioses.dll. Please read up on the audio architecture of Windows from Windows Vista and beyond to help understand what's happening. Hint: The audio APIs in Windows are COM APIs - they're not flat apis so you won't find them in a dependency view. – Larry Osterman Sep 08 '12 at 17:15
  • 1
    Btw, you might want to check out: http://channel9.msdn.com/Blogs/pdc2008/PC13 - at the beginning of the talk, I talk about a bit of the architecture. – Larry Osterman Sep 08 '12 at 17:39
  • Thank you for the great explanation! And I like your the architecture figure in your presentation. That's interesting, so it means in Windows Vista and 7, dsound and winmm have been reimplemented to be dependent on WASAPI? But adding a new layer means more latency right? – Min Lin Sep 09 '12 at 01:15
  • 3
    Adding layers increases the depth of a call stack but it doesn't necessarily increase latency. It only increases latency if each layer adds buffering and they don't - the wave APIs introduce buffering, but the buffering in the Win7 wave driver is lower than the buffering in the XP wave driver. And the Win7 audio stack has about 40ms less latency than the XP audio stack. – Larry Osterman Sep 09 '12 at 03:37