次の方法で共有


WaveCyclic ミニポート ドライバー

重要WavePci の使用は推奨されなくなり、代わりに WaverRT を使用してください。

WaveCyclic ミニポート ドライバーは、オーディオ データに循環バッファーを使用するウェーブ レンダリングまたはウェーブ キャプチャ デバイスのハードウェア依存機能を管理します。 循環バッファーは、通常、連続した物理メモリの 1 つのブロックであり、ドライバーが選択したメモリ領域に配置できます。 次のいずれかの制限があるデバイスでは、WavePci ミニポート ドライバーではなく、WaveCyclic ミニポート ドライバーを提供する必要があります:

  • デバイスには DMA ハードウェアがありません。

  • デバイスの DMA ハードウェアは、連続した物理メモリの 1 つのブロックを占有するバッファー内のデータにのみアクセスできます。

  • デバイスの DMA ハードウェアは、物理メモリのすべての領域のデータにアクセスできません。

WaveCyclic ミニポート ドライバーは、次の 2 つのインターフェイスを実装する必要があります:

  • ミニポート インターフェイスは、ミニポート ドライバーの初期化とストリームの作成をサポートします。

  • ストリーム インターフェイスはウェーブ ストリームを管理し、ミニポート ドライバーのほとんどの機能を公開します。

ミニポート インターフェイス IMiniportWaveCyclicは、IMiniport インターフェイスのメソッドを継承します。 IMiniportWaveCyclic は、次の追加メソッドを提供します:

IMiniportWaveCyclic::Init

ミニポート オブジェクトを初期化します。

IMiniportWaveCyclic::NewStream

新しいストリーム オブジェクトを作成します。

ストリーム インターフェイス IMiniportWaveCyclicStream は、IUnknown インターフェイスのメソッドを継承します。 IMiniportWaveCyclicStream には、次の追加メソッドが用意されています:

IMiniportWaveCyclicStream::GetPosition

Wave ストリーム内のデバイスの現在位置を取得します。

IMiniportWaveCyclicStream::NormalizePhysicalPosition

物理バッファー位置の値を時間ベースの値に変換します。

IMiniportWaveCyclicStream::SetFormat

ウェーブ ストリームのデータ形式を設定します。

IMiniportWaveCyclicStream::SetNotificationFreq

通知割り込みが発生する頻度を設定します。

IMiniportWaveCyclicStream::SetState

ウェーブ ストリームの状態を設定します。

IMiniportWaveCyclicStream::Silence

無音部分をバッファにコピーします。