2 つ以上のストリームの同期
SetDmaEngineState ルーチンは、1 つ以上の DMA エンジンの状態を、実行中、一時停止、停止、またはリセットのいずれかに設定します。 このルーチンの呼び出しで複数の DMA エンジンを指定すると、すべての DMA エンジンが同期して状態遷移を行います。
一部のオーディオ アプリケーションでは、ストリームのグループを同期する機能が必要です。 たとえば、オーディオ ドライバーはコーデック結合を使用して、2 つのオーディオ コーデックを結合する論理サラウンド サウンド オーディオ デバイスを作成できます:1 番目のコーデックはフロント スピーカーを駆動し、2 番目のオーディオ コーデックはバック スピーカーを駆動します。 コーデックの機能に応じて、オーディオ ドライバーは元のサラウンド サウンド オーディオ ストリームを 2 つのストリーム (コーデックごとに 1 つずつ) に分割する必要がある場合があります。 SetDmaEngineState ルーチンを使用してストリームを同時に開始および停止すると、2 つのストリームの同期を維持できます。
2 つのストリームがわずかなサンプルでも同期から外れると、望ましくないオーディオ アーティファクトが発生する可能性があります。
SetDmaEngineState ルーチンは、HD Audio DDI の両方のバージョンで使用できます。
UAA HD Audio クラス ドライバーは、コーデックの結合を実行しません。