[wdmaudiodev] Re: Which audio driver model?

  • From: Matt Gonzalez <matt@xxxxxxxxxxxxx>
  • To: "wdmaudiodev@xxxxxxxxxxxxx" <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Thu, 25 Sep 2008 20:05:55 -0700

Hello,

WDM isn't an audio driver model.

WDM stands for Windows Driver Model. It refers to the generic Windows driver development framework first introduced with Windows 98 and Windows 2000. WDM is for any type of kernel mode device driver. Wikipedia has a good article.

So any audio driver for Win2K/XP/Vista is a WDM driver.

All of the MSVAD samples are based on PortCls using WaveCyclic.

Matt

On Sep 25, 2008, at 7:53 PM, Matthias Moetje <moetje@xxxxxxxxxxxx> wrote:

Matt and Tim,



thanks very much for your assistance.



So what about the WDM model? Do you any experience with this?

Do I assume correctly that the MSVAD sample in the current WDK

is WDM based, while the MSVAD from older DDKs is PortCls based?



Best regards,



Matthias Moetje

<image001.gif>

TERASENS GmbH
Augustenstraße 24
80333 Munich
GERMANY



Phone:
Fax:
e-mail:
Web:

+49.89.143370-0
+49.89.143370-22
info@xxxxxxxxxxxx
www.terasens.com







From: wdmaudiodev-bounce@xxxxxxxxxxxxx [mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx ] On Behalf Of Matt Gonzalez
Sent: Dienstag, 23. September 2008 02:36
To: wdmaudiodev@xxxxxxxxxxxxx
Subject: [wdmaudiodev] Re: Which audio driver model?



Hello,

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.

Matt

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 Direct Show filtergraph (consisting of RTP sink/source filter, codec filter s) 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

<image001.gif>

TERASENS GmbH
Augustenstraße 24
80333 Munich
GERMANY



Phone:
Fax:
e-mail:
Web:

+49.89.143370-0
+49.89.143370-22
info@xxxxxxxxxxxx
www.terasens.com








Other related posts: