大事な WavePci の使用は推奨されなくなりました。代わりに WaverRT を使用してください。
WaveCyclic ミニポート ドライバーは、オーディオ データに循環バッファーを使用するウェーブ レンダリングまたはウェーブ キャプチャ デバイスのハードウェアに依存する機能を管理します。 通常、循環バッファーは連続する物理メモリの 1 つのブロックであり、ドライバーが選択したメモリ領域に配置できます。 次のいずれかの制限があるデバイスは、 WavePci ミニポート ドライバーではなく、WaveCyclic ミニポート ドライバーを提供する必要があります。
デバイスに DMA ハードウェアがありません。
デバイスの DMA ハードウェアは、連続する物理メモリの 1 つのブロックを占有するバッファー内のデータにのみアクセスできます。
デバイスの DMA ハードウェアは、物理メモリのすべての領域のデータにアクセスできません。
WaveCyclic ミニポート ドライバーは、次の 2 つのインターフェイスを実装する必要があります。
ミニポート インターフェイスは 、ミニポート ドライバーの初期化とストリームの作成をサポートしています。
ストリーム インターフェイスは 、ウェーブ ストリームを管理し、ミニポート ドライバーの機能のほとんどを公開します。
ミニポート インターフェイス IMiniportWaveCyclic は、 IMiniport インターフェイスのメソッドを継承します。 IMiniportWaveCyclic には、次の追加メソッドが用意されています。
ミニポート オブジェクトを初期化します。
IMiniportWaveCyclic::NewStream
新しいストリーム オブジェクトを作成します。
ストリーム インターフェイス IMiniportWaveCyclicStream は、 IUnknown インターフェイスのメソッドを継承します。 IMiniportWaveCyclicStream には、次の追加メソッドが用意されています。
IMiniportWaveCyclicStream::GetPosition
ウェーブ ストリーム内のデバイスの現在位置を取得します。
IMiniportWaveCyclicStream::NormalizePhysicalPosition
物理バッファー位置の値を時間ベースの値に変換します。
IMiniportWaveCyclicStream::SetFormat
ウェーブ ストリームのデータ形式を設定します。
IMiniportWaveCyclicStream::SetNotificationFreq
通知割り込みが発生する頻度を設定します。
IMiniportWaveCyclicStream::SetState
ウェーブ ストリームの状態を設定します。
IMiniportWaveCyclicStream::Silence
バッファーに無音をコピーします。