A Deferred Procedure Call (DPC) is a mechanism used to reduce the amount of time actually spent in a high-priority thread. High-priority tasks are related to drivers or processes that run simultaneously in the Windows operating system.
This mechanism enables device drivers and other low-level processes to perform the critical, high-priority part of their processing quickly, and schedule the non-critical, lower priority part of their processing for later execution.
As you might guess, there are many poorly written drivers that take longer than necessary to process, and therefore prevent other drivers from being processed in time. These situations may prevent your audio driver from being processed promptly thereby causing pops, clicks, dropouts or audio distortion.
An Interrupt Service Routine (ISR) is a software procedure that hardware call on in response to an interrupt. The hardware interrupts the CPU which then switches into kernel mode and jumps to the ISR, causing their interrupt service routines to execute.
Unfortunately, Windows does not provide an integrated tool for troubleshooting DPC and ISR latency issues. Luckily, there is a great application called LatencyMon (a free home edition is available) that checks if your PC is suitable for processing real-time audio and other tasks by measuring DPC and ISR execution time, kernel timer latency and pagefaults:
Click on the play button to start monitoring, let it run for a couple of minutes and then click on the stop button.
This application provides a report where you can determine which kernel modules and processes are responsible for causing audio latencies or might result in dropouts.
The report also includes a report on the suitability of your system for playing real-time audio:
•If the execution times of all DPC and ISR routines stay below 2000 µs (microseconds), your system is considered suitable for handling real-time audio without dropouts.
•If some routines have execution times between 2000 µs and 4000 µs, your system is considered doubtful.
•If ISR or DPC routines are detected to execute for longer than 4000 µs, a system is considered unsuitable for handling real-time audio.
Here are some tips to resolve DPC and ISR latency issues:
•Update your drivers - a common cause of DPC latency is out of date device drivers. New drivers will hopefully be better optimized and cause less interruptions in your audio stream.
•Disable devices you do not use – if you do not use network or WiFI adapters, disable them. The same applies to card readers, other sound devices that are not in use (e.g. your integrated audio card), Bluetooth adapters, imaging devices and others.
•Research the Internet – copy the name of the problematic driver and add DPC or ISR to your search query to find discussions on audio forums and make yourself familiar with that driver and possible solutions. Perhaps an older driver, or a specific version may work better than the newest one.
•Find the alternative – if for example tcpip.sys or ndis.sys are reported as the culprit (ndis.sys is displayed in the screenshot above), the chances are that the problems are caused by your wireless network adapter. Therefore, try disabling the WiFi adapter and instead connect to your LAN or to the Internet via an Ethernet cable. If you are using a laptop and touchpad drivers are causing problems, use a USB mouse instead and re-run the test.