Unsupported formats displayed in Sound->Device Properties->Advanced(tab)->Default Format RRS feed

  • Question

  • I am trying to fix a long-standing bug in an AvStream USB audio driver.  In the Windows  8.1 "Sound->Line Out Properties->Advanced Tab->default Format" dropdown there are formats not supported by our device and furthermore not in ANY of our dataranges!  The dataranges for the device seem to be populated correctly and all formats other than the ones our hardware supports are  correctly rejected by our Intersect  and SetProposedDataFormat handlers.  If I select one of the unsupported formats from the dropdown, and hit apply, it is correctly rejected by the device and a "Format not supported by the device." messagebox is displayed.

    Does anyone know how that list is actually populated????  I want it to only show the formats actually supported by our device.  I've seen similar posts concerning dynamic format changes but this seems to be a different issue...   

    Also, is there a way to monitor the actual property request IRPs being sent to the pin?  I've used KSStudio, but it doesn't seem to be able to show this (mmsyscpl queries).


    • Edited by Wade Dawson Wednesday, May 28, 2014 12:10 PM
    Wednesday, May 28, 2014 4:04 AM


All replies

  • Audio Property Requests: http://msdn.microsoft.com/en-us/library/windows/hardware/ff536215(v=vs.85).aspx

    The specific property used in the query to return those values should be: KSPROPERTY_AUDIOENGINE_SUPPORTEDDEVICEFORMATS

    If you do this in a test app or similar, does it return the same item list as the Line Out properties page?

    Wednesday, May 28, 2014 8:00 PM
  • Hi Michael.  Thanks for the response.  I will investigate further, but the issues exists also in Win7.  From the docs the it looks like KSPROPSETID_AudioEngine is only >= win8.  Is there another similar property that might be used, in Win7?  

    Does AVStream not provide a default handler for these properties?

    Furthermore, I don't understand why the values are getting in the list even though my intersection handler is getting called and is rejecting them.  For instance, I get a request for samplerate 384k for which I return STATUS_NO_MATCH for, yet it shows up in the list box as an allowable format.

    I will post the results of my testing.


    Wednesday, May 28, 2014 11:00 PM