[wdmaudiodev] Re: how to implement a USB audio driver!

  • From: zhangkingbo <zhangkingbo@xxxxxxxxxxx>
  • To: <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Tue, 27 Mar 2012 11:26:04 +0800

Hello,

Just as you mentioned, the built-in USBAudio.sys by MS is based on AVStream
driver model. 

So, obviously, we can also implement such driver from the AVStream driver 
completely.

Actually, about 4-5 years ago, I indeed put some effort in implementing a USB 
AVStream 
driver for my pre-employer. It is indeed difficult because just as you 
mentioned, there is 
no any documentation for USB Audio implementation. So, sometimes you should 
debug 
and even put effort in reverse-engineering the built-in USBAudio.sys. However, 
I should 
note that it is not as difficult as our original imagination.

Of course, we should not implement all features mentioned in USB Audio spec. 
You know, 
there are so many never-used features; but in the reverse-engineering process, 
I found that there 
are also considered in the built-in USBAudio.sys. In one word, I mean we should 
just focus on the 
most important features.

You should write a full functional Device-Filter-Pin model driver. And, 
especially, the pin is the most 
important.

Best Regards,
Kingbo Zhang


> Date: Fri, 23 Mar 2012 12:46:55 -0700
> From: timr@xxxxxxxxx
> To: wdmaudiodev@xxxxxxxxxxxxx
> Subject: [wdmaudiodev] Re: how to implement a USB audio driver!
> 
> 苏河滔 wrote:
> >     I am very confused with the requirement of end-customer.
> > but this is my job and i have no idea.
> 
> I am sure this will generate discussion on the mailing list, but allow
> me to say that it is the RESPONSIBILITY of every professional engineer
> to point out to his clients and his management when they are proceeding
> down the wrong path.  And, you cannot possibly create the correct
> solution if you do not understand the requirements.
> 
> >     I have done a lot of work.And write a driver model from the AVStream 
> > sample.
> > because the usbaudio.sys is based on AVStream Class Driver,so I want
> > to implement this process again.
> > but I don't know how to create a complete filter for describing the
> > real usb audio device.
> 
> Remember that USBAudio.sys has been around for nearly 15 years. 
> Microsoft has probably invested fifty man-years of development effort
> into USBAudio.sys, and it has had the benefit of millions of hours of
> real-world testing.  You cannot hope to recreate all of that in a short
> period.
> 
> If you have created AVStream drivers before, you can probably create a
> very limited version of USBAudio.sys that handles your customer's
> specific configuration.  You would follow the same basic path as with
> any AVStream driver.  You fetch the USB descriptors at startup time so
> you can create a pin descriptor that describes your exact formats.  When
> the graph moves into "pause" state, you start submitting isochronous
> URBs to read the data, and you copy those into the stream's leading
> edge.  Repeat over and over.
> 
> -- 
> Tim Roberts, timr@xxxxxxxxx
> Providenza & Boekelheide, Inc.
> 
> ******************
> 
> WDMAUDIODEV addresses:
> Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx
> Subscribe:    mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribe
> Unsubscribe:  mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribe
> Moderator:    mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx
> 
> URL to WDMAUDIODEV page:
> http://www.wdmaudiodev.com/
> 
                                          

Other related posts: