

以下のサイトを参考にAPOを作成しています。  
<https://docs.microsoft.com/ja-jp/windows-hardware/drivers/audio/audio-
processing-object-architecture>

APOはユーザーモードのDLLなので、APOとCOMクライアントの間でメモリを共有することが出来ると理解しています。  
なので、私はdata_segプラグマを使う方法とCreateFileMapping関数を使う方法を試して、APOとCOMクライアントでメモリの共有ができるかを試してみました。  
（上記リンクの図に記載されているApplication（COMクライアント）とMFXでメモリーを共有しようとしています）

結論としては、コンストラクタなど非リアルタイム処理で更新された値は取得出来たのですが、  
リアルタイムに信号処理を実施するAPOProcess関数内で更新された値は取得することは出来ませんでした。

### 質問

  * なぜ信号処理関数で更新された値をCOMクライアントは取得出来ないのでしょうか？
  * APOの信号処理関数で更新された値を取得する方法はありますか？

以上、よろしくお願いいたします。


CC BY-SA 4.0
2021-03-25T09:35:48.623
74890
2021-03-26T01:56:11.397
2021-03-26T01:56:11.397
3060
44503
question
c++ windows
APOの信号処理関数で更新された変数の値を取得できない。