次の方法で共有


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

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

IMiniportWaveCyclicStream::NormalizePhysicalPosition

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

IMiniportWaveCyclicStream::SetFormat

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

IMiniportWaveCyclicStream::SetNotificationFreq

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

IMiniportWaveCyclicStream::SetState

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

IMiniportWaveCyclicStream::Silence

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