What API is being used to play or record audio?

When troubleshooting audio problems it is sometimes interesting to know exactly what audio API the app in question is using. Sometimes we can just ask the app developer, or look at their code. Sometimes it is possible to get an educated guess by looking at the list of .dlls that get loaded into the app….


If Windows Update sent you Intel Audio Controller version by mistake, uninstall it

An Intel audio driver was incorrectly pushed to devices via Windows Update for a short period of time earlier this week.  After receiving reports from users that their audio no longer works, we immediately removed it and started investigating.  If your audio broke recently, and you’re running Windows 10 version 1709 or above, please check to…


Tracking down calls to AvSetMmThreadCharacteristics

Boring introductory stuff first: Windows Vista introduced a feature called the “Multimedia Class Scheduler Service” (MMCSS). This is designed to give audio and video threads regular, short, bursts of very high priority, so that audio and video can stream without glitching. The bursts are regular so that audio and video packets don’t get delayed, and…


How to gather and read logs for Microsoft’s USB Audio 2.0 class driver

I have blogged before about the Microsoft class driver for USB Audio 2.0 hardware. If you are a hardware vendor, and you make USB Audio 2.0 hardware, you should expect your hardware to work with this driver. If it doesn’t, you may be interested in understanding why – maybe it’s a bug on our end,…


How to negotiate an audio format for a Windows Audio Session API (WASAPI) client

The Windows Audio Session API (WASAPI) provides a family of interfaces for playing or recording audio. Chief among these are the IAudioClient, IAudioClient2, and IAudioClient3 interfaces. There is a Windows audio session (WASAPI) sample on GitHub, but in this blog post I want to dive into the nitty-gritty of one particular question: How do I…


Collecting audio logs the old-fashioned way

In previous blog posts I have showed how to use the Feedback Hub to file a new problem report with logs, and to add logs to an existing problem report. It can also be useful to gather the logs outside of the Feedback Hub environment. For example, there is a current issue in the Feedback Hub which affects…


Media eXperience Analyzer now available in the Assessment and Deployment Kit (ADK)

The 1607 Anniversary Update of the Microsoft Windows Assessment and Deployment Kit (ADK) now includes Media eXperience Analyzer. Channel 9’s Defrag Tools series has a number of episodes featuring Media eXperience Analyzer: Defrag Tools #149 – Media eXperience Analyzer part 1 Defrag Tools #150 – Media eXperience Analyzer part 2: Video Playback Power Saving Defrag Tools #151 – Media eXperience…


Installing the Microsoft class driver(s) for USB Audio devices

Back in 2010 I wrote about how to install the Microsoft class drivers on audio hardware that was built to the Intel High Definition Audio specification. It is also possible to install a Microsoft class driver on audio hardware that was built to the USB Audio specification. Pretty much all versions of Windows have a…


How to record a phone call on a Windows 10 phone

First, check the specifications for your phone to see if it has the necessary hardware to support call recording – not all phones do. For example, the Lumia 950 does: Lumia 950 specifications And so does the Lumia 550: Lumia 550 specifications You’re looking for something like this: If you’re trying to set up call…


Poking into the "trusted root certification authorities" certificate stores for the current user and the local machine

Sometimes, like when trying to install a test driver you just built, it is very important to distinguish between “I trust this code” and “my machine trusts this code.” It can be difficult to tell the difference by just double-clicking on a .cat file or using signtool.exe verify – luckily, the Microsoft Management Console provides…