Thanks very much Cheng-mean Liu. We are passing audio samples from LFX to GFX by using a circular buffer. Thanks again. Alex ________________________________ 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 Microsoft 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 instances. 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.