大事な WavePci の使用は推奨されなくなりました。代わりに WaverRT を使用してください。
WavePci ポート ドライバーは、物理メモリ内の任意の場所との間で分散/収集 DMA 転送を実行できるオーディオ デバイスによるウェーブ ストリームの再生または記録を管理します。 散布図/収集 DMA を使用すると、デバイスは一連のマッピングで構成されるバッファー内のオーディオ データを処理できます。 各マッピングは物理的に連続したメモリのブロックですが、連続するマッピングは必ずしも互いに連続しているわけではありません。 WavePci 互換デバイスは、オーディオ アダプターのハードウェア機能です。 通常、アダプターはマザーボード上の統合チップセットの一部であるか、マザーボード上の PCI スロットに接続するオーディオ カードに取り付けられています。 アダプター ドライバーは、ウェーブ ストリームをキャプチャまたはレンダリングできるウェーブ フィルターを形成する WavePci ポート ドライバー オブジェクトにバインドする対応する WavePci ミニポート ドライバーを提供します。
WavePci ポート ドライバーは、ミニポート ドライバーに IPortWavePci インターフェイスを公開します。 IPortWavePci は、基本インターフェイス IPort のメソッドを継承します。 さらに、IPortWavePci には次のメソッドが用意されています。
IPortWavePci::NewMasterDmaChannel
新しいマスター DMA チャネル オブジェクトを作成します。 IPortWavePci::Notify
DMA コントローラーがオーディオ ストリーム内の新しい位置に進んだことをポート ドライバーに通知します。 WavePci ポート ドライバーは、ミニポート ドライバーの各ストリーム オブジェクトに IPortWavePciStream インターフェイスも公開します。 IPortWavePciStream は、基本インターフェイス IUnknown のメソッドを継承します。 IPortWavePciStream には、次の追加メソッドが用意されています。
IPortWavePciStream::GetMapping
ポート ドライバーから次のマッピングを取得します。 IPortWavePciStream::ReleaseMapping
GetMapping 呼び出しによって以前に取得されたマッピングを解放します。 IPortWavePciStream::TerminatePacket
キャプチャ データが部分的にのみ格納されている場合でも、I/O パケットを終了します。 I/O パケットは、特定のマッピング IRP に関連付けられているすべてのマッピングで構成されるオーディオ バッファーの一部です。
WavePci ポートとミニポート オブジェクトは、それぞれの IPortWavePci インターフェイスと IMiniportWavePci インターフェイスを介して相互に通信します。 さらに、WavePci ポートとミニポート ストリーム オブジェクトは、それぞれの IPortWavePciStream インターフェイスと IMiniportWavePciStream インターフェイスを介して相互に通信します。