The free OSR Learning Library has more than 50 articles on a wide variety of topics about writing and debugging device drivers and Minifilters. From introductory level to advanced. All the articles have been recently reviewed and updated, and are written using the clear and definitive style you've come to expect from OSR over the years.
Check out The OSR Learning Library at: https://www.osr.com/osr-learning-library/
I'm working on an audio driver for my GPU, based on Microsoft's sysvad sample driver, and am running into some bizarre behavior that I haven't been able to find a solution for.
My driver declares both a WaveRT and a Topology filter, both of which I can correctly instantiate inside of KS Studio and both of which validate without issue. When my driver is installed, a new output device is also created and I can select it in the Sound settings in the UI. However, its volume is permanently fixed to zero and the taskbar sound icon shows an X. Hovering over it reports "No speakers or headphones are plugged in."
My Topology filter's property handler handles the KSPROPERTY_JACK_DESCRIPTION, KSPROPERTY_JACK_DESCRIPTION2, and KSPROPERTY_JACK_SINK_INFO properties, and reports that the connection status is connected.
When the driver is first installed and when I attempt to change the volume, I see it checking the WaveRT instance for supported formats, finding one, creating a new instance of my WaveRTStream class, triggering an allocation through AllocateBufferWithNotification, and then immediately freeing that same buffer, closing the stream, and repeating the process. It does this a dozen or so times before stopping and going idle. I never get calls to change the stream's state or anything else that indicates it's trying to do something that I'm not handling properly to cause this behavior.
Does anyone have any idea what might be going on here? Is there any way for me to have Windows report additional information about the behavior of the audio systems that might help me track down what I'm doing wrong?
|Upcoming OSR Seminars|
|OSR has suspended in-person seminars due to the Covid-19 outbreak. But, don't miss your training! Attend via the internet instead!|
|Kernel Debugging||13-17 May 2024||Live, Online|
|Developing Minifilters||1-5 Apr 2024||Live, Online|
|Internals & Software Drivers||11-15 Mar 2024||Live, Online|
|Writing WDF Drivers||26 Feb - 1 Mar 2024||Live, Online|