[wdmaudiodev] USB audio changes in Vista?

  • From: "Jerry Trantow" <jtrantow@xxxxxxxx>
  • To: <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Fri, 28 Sep 2007 13:33:58 -0500

First some background:

Years ago I wrote a lower filter driver for a USB audio device that extended
the capabilities of a Philips usb audio part.  We extended the hardware by
adding a 24 bit ADC and this required some vendor specific commands to
change the capture rate from 32K, 44.1K, 48K.  

First, in the lower filter driver (to USBAudio.sys) I spoof
URB_FUNCTION_GET_DESCRIPTOR_FROM_DEVICE to expose modified capture
interfaces of 8/16/24 bits, stereo/mono, 32K/44.1K/48K.  
Then I intercept URB_FUNCTION_SELECT_INTERFACE to send commands
(32K,44.1,48K FS) to my custom hardware that changes the ADC clock.  This
worked fine for the Win9x and NT platforms up to Vista.

However, In Vista I am only getting 44.1K, 16 bit mono captures and 44.1K,
16 bit stereo playback.  I don't know why Vista is always requesting these
interfaces???  My USB descriptors worked fine for all the previous OS
(including Macs).  I see the calls to
DispatchInternalControl(URB_FUNCTION_GET_DESCRIPTOR_FROM_DEVICE)
And 
URB_FUNCTION_SELECT_INTERFACE  (Capture,        16 bit mono)    

My questions are:
1)      Has anything changed in the way USBAudio.sys asks for USB
descriptors?
2)      What's the current tool for looking at what interfaces are exposed
by a USB audio device?  
3)      Any other ideas on tracking down this problem?


Other related posts: