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