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?