There's no technical block on added delay. An APO can add as much delay as it wants, provided it reports that delay via IAudioProcessingObject::GetLatency(). If calls to IAudioProcessingObjectRT::APOProcess take too long in aggregate, as a fraction of the Windows audio engine period, new streams will be failed with AUDCLNT_E_CPUUSAGE_EXCEEDED. The error you're seeing sounds like something else: https://msdn.microsoft.com/en-us/library/windows/hardware/ff538609(v=vs.85).aspx "Also, if the failure count value for an LFX or a GFX sAPO reaches a system-specified limit, both the LFX and the GFX sAPOs are disabled by setting the PKEY_Endpoint_Disable_SysFx registry key to '1'. The system-specified limit is currently a value of 10." This includes failures creating the APO, initializing the APO, negotiating formats, etc. -----Original Message----- From: wdmaudiodev-bounce@xxxxxxxxxxxxx [mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Tim Roberts Sent: Tuesday, January 20, 2015 9:43 AM To: wdmaudiodev@xxxxxxxxxxxxx Subject: [wdmaudiodev] Audio Enhancements Problem What heuristic leads the audio engine to put up the dialog "Windows has detected that audio enhancements for the following device are causing problems"? Does that necessarily mean that there has been an uncaught exception in the APO? Or is there a fuzzier heuristic in place? Like "audio is being delayed and there is an APO, so the APO must be at fault"? -- Tim Roberts, timr@xxxxxxxxx Providenza & Boekelheide, Inc. ****************** WDMAUDIODEV addresses: Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx Subscribe: mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribe Unsubscribe: mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribe Moderator: mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx URL to WDMAUDIODEV page: http://www.wdmaudiodev.com/ X3P2EZu�Ǭ>�-��,j�j)m�fj�b�ׯ~���+-���J��r��zf���0vf�v*z�ު笵��zX���+�˛��-