Re: How to write a driver to control a usb audio card?

I got a usb audio card. What I want to do is to write a driver to modify
the basic flow of the audio streaming, like re-direct the input flow(from
microphone) to the output flow (the speaker). I need to do this in kernel
so as to get real time response.

I have done a lot of reading and experiment work. Something makes me
confused. For my purpose, do i need to write a common filter, or a miniport
filter, or something else? Which sample in Microsoft WDK should I start
with? We know there are lots of samples on audio, like MSVAD,GFXSWAP.XP,
even AC97.

Thanks for your help.

Yager

On Thu, Jun 7, 2012 at 3:23 PM, ttt wrote:

>
> I got a usb audio card. What I want to do is to write a driver to modify
> the basic flow of the audio streaming, like re-direct the input flow (from
> microphone) to the ouput flow (the speaker). I need to do this in kernel
> so as to get real time response.
>
> I have done a lot of reading and experiment work. Something makes me
> confused. For my purpose, do I need to write a common filter, or a miniport
> filter, or something else? Which sample in microsoft WDK should I start
> with? We know there are lots of samples on audio, like MSVAD, GFXSWAP.XP,
> even AC97.
>
> I am a newcomer in this field. Thanks for your help.
>
> Yager
>
>
>
>

Being in the kernel does not make you any faster or more real time than if you were in user mode.

d

debt from my phone


From: T TT
Sent: 6/7/2012 12:39 AM
To: Windows System Software Devs Interest List
Subject: Re: [ntdev] How to write a driver to control a usb audio card?

I got a usb audio card. What I want to do is to write a driver to modify the basic flow of the audio streaming, like re-direct the input flow(from microphone) to the output flow (the speaker). I need to do this in kernel so as to get real time response.

I have done a lot of reading and experiment work. Something makes me confused. For my purpose, do i need to write a common filter, or a miniport filter, or something else? Which sample in Microsoft WDK should I start with? We know there are lots of samples on audio, like MSVAD,GFXSWAP.XP, even AC97.

Thanks for your help.

Yager

On Thu, Jun 7, 2012 at 3:23 PM, ttt > wrote:

I got a usb audio card. What I want to do is to write a driver to modify the basic flow of the audio streaming, like re-direct the input flow (from microphone) to the ouput flow (the speaker). I need to do this in kernel so as to get real time response.

I have done a lot of reading and experiment work. Something makes me confused. For my purpose, do I need to write a common filter, or a miniport filter, or something else? Which sample in microsoft WDK should I start with? We know there are lots of samples on audio, like MSVAD, GFXSWAP.XP, even AC97.

I am a newcomer in this field. Thanks for your help.

Yager

— NTDEV is sponsored by OSR For our schedule of WDF, WDM, debugging and other seminars visit: http://www.osr.com/seminars To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer

T TT wrote:

I got a usb audio card. What I want to do is to write a driver to
modify the basic flow of the audio streaming, like re-direct the input
flow(from microphone) to the output flow (the speaker).

You would do that with a perfectly ordinary application that builds an
ordinary audio processing graph. No drivers required.

I have done a lot of reading and experiment work. Something makes me
confused. For my purpose, do i need to write a common filter, or a
miniport filter, or something else? Which sample in Microsoft WDK
should I start with? We know there are lots of samples on audio, like
MSVAD,GFXSWAP.XP, even AC97.

You mentioned GFXSWAP.XP. Are you limiting yourself to Windows XP?
Remember that the audio subsystem was completely redesigned in Vista.

For devices with WaveRT drivers (which is most motherboard audio
devices), the actual audio streams never pass through kernel mode at
all. The user-mode audio engine process manages the flow using circular
buffers that map directly to the hardware. A filter driver can’t touch
it. You’d have to use an application, or a SYSFX APO.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.