Re: USBAudio.sys source code



Thanks for the info Tim.

I am not in detail familiar with the usbaudio filter architecture but since
I need to support high speed USB with a USB transaction rate of more than 1
per ms (the USB audio driver requires bInterval to be 4, I would need it to
be at least 3 in order to accomodate higher bit rates), I doubt that a lower
or upper filter driver could accomodate this. It could only map a USB audio
2.0 structure to 1.0?

Working with MS to extend the current driver to support higher bandwidth
devices would be a good option. I think that the USBAudio.sys would only
require relatively minor changes in order to support higher bit rates. In
fact it already works for the most part. Only the asynchronous feedback
implementation causes system crashes at 192/24.

Can someone from MS chime in on this? I heard throught he grapevine that
there is no work going on relative to USB Audio class 2.0 support. Is this
correct? If not, I would be interested in some cooperative work...

The reason the USBAudio.sys driver is relatively complicated is because it
needs to support a variety of devices and has an extensible architecture. My
driver would be much simpler since it could be tailored specifically to my
device. I would not even have to deal with the USB descriptors since I would
know what the device capabilities are. So, I think writing my own driver
should not be that complicated.

Thanks

Philip

"Tim Roberts" wrote:

pgruebele <pgruebele@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote:

I need to develop a USB audio class 2.0 driver and would like to base it on
the USBAudio.sys audio class 1.0 driver. Is it possible to get the source
code to USBAudio.sys in order to expedite this process?

You can get a Windows source license, but it is quite expensive, and you
would be prohibited from distributing a product derived from it. So, in
practical terms, the answer is no.

If this is not possible, does anyone have recommendations for how to go
about this without having to write everything from scratch? For example,
what would be the best way to write an audio device driver that is compatible
with vista/7 or xp/vista/7?

I see two possible paths to success. One path would be for you to contact
the Microsoft audio team and get involved in their process. I have no
doubt that someone in Redmond is working on this. If you are producing a
leading edge USB Audio Class 2.0 device, I'm sure they would be tickled to
have an additional test platform, in exchange for giving you early access
to the new driver.

If that doesn't work, the next best path (in my opinion) is to write filter
drivers around the existing usbaudio.sys. There is an ENORMOUS amount of
infrastructure in usbaudio.sys, and it took some very smart folks at
Microsoft four tries in four years to get something that really did a good
job. You do not want to recreate all of that.

I don't know whether a lower filter would be enough, or if you would need
both a lower filter and an upper filter, but even writing two filters is
much, MUCH less work than starting over from scratch.

This driver will work in XP, Vista, and 7.
--
Tim Roberts, timr@xxxxxxxxx
Providenza & Boekelheide, Inc.

.



Relevant Pages

  • Re: isa0060/serio0 problems -WAS- Re: Asus MB and 2.6.12 Problems
    ... Use a HIGHMEM enabled kernel. ... Linux Plug and Play Support v0.97 Adam Belay ... Non-volatile memory driver v1.2 ... ehci_hcd 0000:00:13.2: new USB bus registered, ...
    (Linux-Kernel)
  • 2.6.15: usb storage device not detected
    ... dmesg and lspci -vv output for the usb bits attached. ... # ACPI Support ... # Generic Driver Options ...
    (Linux-Kernel)
  • Re: Linux 2.6.13-rc4
    ... > ugly that I won't even show it (the kernel list would eat it as too big ... RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize ... ehci_hcd 0000:00:02.2: new USB bus registered, ... # ACPI Support ...
    (Linux-Kernel)
  • RE: PATCH: Further aacraid work
    ... currently unanswered email "error recovery and command completion" on ... > Enabling unmasked SIMD FPU exception support... ... > usbcore: registered new driver usbfs ... > USB Universal Host Controller Interface driver v2.2 ...
    (Linux-Kernel)
  • Re: PATCH: Further aacraid work
    ... > Enabling unmasked SIMD FPU exception support... ... > ESR value after enabling vector: ... > usbcore: registered new driver usbfs ... > USB Universal Host Controller Interface driver v2.2 ...
    (Linux-Kernel)