[wdmaudiodev] Re: vista/win7 APO questions

  • From: Alex Green <alexgreen4834@xxxxxxxxx>
  • To: wdmaudiodev@xxxxxxxxxxxxx
  • Date: Mon, 4 Jan 2010 03:13:52 -0800 (PST)

Thanks very much Cheng-mean Liu. 

We are passing audio samples from LFX to GFX by using a circular buffer.

Thanks again.


From: Cheng-mean Liu (SOCCER) <soccerl@xxxxxxxxxxxxx>
To: "wdmaudiodev@xxxxxxxxxxxxx" <wdmaudiodev@xxxxxxxxxxxxx>
Sent: Tue, December 29, 2009 9:56:14 AM
Subject: [wdmaudiodev] Re: vista/win7 APO questions

The AudioDG process handles the shared-mode steaming for all the endpoints. 
Each endpoint has its own thread for running the sAPO (LFX or GFX) on its 
stream pipe (hosting LFXs) and device pipe (hosting GFXs ) in serialized 
fashion.  So the answer to Alex's question in the specific case he described 
(within the scope of the same endpoint) is yes -- GFXs abd LFXs calls are 
serialized.  However, if the same LFX or GFX are also used on other endpoints 
running in the same system, this serialized behavior is not guaranteed because 
APOProcess calls are not atomic. By the way,  any APO should be non-blocking to 
avoid causing glitching.
By the way, Alex, I am wondering what kind of information exchange between the 
input LFX and output GFX you need. 
The behavior I described above applies to Vista and Win7.
Cheng-mean Liu
This posting is provided "AS IS" with no warranties, and confers no rights.
From:wdmaudiodev-bounce@xxxxxxxxxxxxx [mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] 
On Behalf Of Tim Roberts
Sent: Monday, December 28, 2009 10:15 AM
To: wdmaudiodev@xxxxxxxxxxxxx
Subject: [wdmaudiodev] Re: vista/win7 APO questions
Alex Green wrote: 
Please consider the following examples:
Assume that there will be some information exchange between the input LFX and 
output GFX through a memory mapped file. 
Or assume that there are multiple applications using the same input device 
(multiple instance LFXs) and there will be some information exchange among LFX 
For those cases, can I assume if APOProcess calls of GFXs and LFXs are 
serialized by AudioDG?  If preemption is possible then I need to protect and 
synchronize the exchanged information somehow agains the multithreading.

To the best of my knowledge, Microsoft makes no guarantees in this regard.  
However, I admit that the internals of the audio engine are still a bit of a 
mystery.  Perhaps one of the audio team members can comment on whether 
APOProcess calls are atomic or not.

Tim Roberts, timr@xxxxxxxxx
Providenza & Boekelheide, Inc.


Other related posts: