[wdmaudiodev] Re: Which audio driver model?

  • From: Matt Gonzalez <matt@xxxxxxxxxxxxx>
  • To: wdmaudiodev@xxxxxxxxxxxxx
  • Date: Mon, 22 Sep 2008 17:35:40 -0700


I have developed drivers using both PortCls and AVStream.

AVStream is better for handling external hardware since it can handle surprise removal.  It sounds like your solution is software only, so that doesn't matter.

Of the two that I have used, AVStream is more flexible but harder to implement.  There aren't any good sample drivers, so it's much harder to get started, especially if you don't have any experience with audio drivers.  In addition, an AVStream audio driver has to implement quite a bit of the functionality that PortCls does for you.

If I were you, I would start with the MSVAD sample in the DDK.

I don't have any experience with Stream Class.

The main thing to keep in mind is that all of these are just different methods for presenting a kernel streaming filter with the correct set of pins.  They use different calls and data structures to describe the same thing.  In my opinion, this really isn't obvious just from reading the documentation or the sample code.


Matthias Moetje wrote:

Hello all,


I am new to this list and joined because I need some advice on creating an audio driver.


I realized, that there are quite a few models available to develop an audio driver (wdm, AVStream, PortCls, StreamClass) and I have no idea which will be the right one.


Let me give you some more information: We have developed a TAPI service provider for the SIP protocol (VoIP). A TAPI service provider (TSP) is a kind of middleware and there are two ways a TSP can provide access to the audio streams to the consuming application: Either an MSP (Media Service Provider, requires TAPI3) or an audio driver (used with TAPI2).

We already have implemented the MSP. Actually it’s building a DirectShow filtergraph (consisting of RTP sink/source filter, codec filters) and provides an endpoint pin to the application.


Now we want to develop an audio driver. Ideally this audio driver would use the existing MSP to instantiate the filtergraph and model the endpoint pin as wave device.


So, the question is: Which would be the best suited audio driver model to accomplish this task?



Best regards,


Matthias Moetje

Augustenstraße 24
80333 Munich






Other related posts: