IDmaChannel インターフェイス (portcls.h)
IDmaChannel
インターフェイスは、DMA チャネルとそれに関連付けられている DMA バッファーと使用パラメーターの抽象化を提供します。 WaveCyclic または WavePci ポート ドライバーは、このインターフェイスを実装し、WaveCyclic または WavePci ミニポート ドライバーに公開します。 ミニポート ドライバーは、ポート ドライバーの NewXxxDmaChannel メソッドのいずれかを呼び出すことによって、IDmaChannel
オブジェクトのポート ドライバーの実装への参照を取得します。
IDmaChannel
インターフェイスを実装することもできます。 詳細については、「ウェーブ フィルター をする」を参照してください。 ポート ドライバーがミニポート ドライバーの NewStream メソッド (たとえば、IMiniportWaveCyclic::NewStream ) を呼び出すと、ミニポート ドライバーの IDmaChannel
オブジェクトがポート ドライバーに出力されます。
IDmaChannel
は、IUnknown インターフェイスから継承します。
Portcls.sys の IDmaChannel
インターフェイスの現在の実装は、共有データへのアクセスを内部的に同期しないため、マルチスレッド セーフではありません。 通常、1 つのドライバー スレッドは、IDmaChannel
オブジェクトのメソッドを呼び出します。 この場合、2 つのメソッド呼び出しが同じデータに同時にアクセスするリスクはありません。 ただし、複数のスレッドが IDmaChannel
オブジェクトのメソッドを同時に呼び出すことができる場合、ドライバー ライターは、内部データの破損を防ぐためにメソッドの呼び出しを同期する必要があります。
詳細については、「DMA チャネル オブジェクト」を参照してください。
手記
Microsoft では、多様で包括的な環境をサポートしています。 この記事には、偏りのない通信の Microsoft スタイル ガイドで除外として認識 用語への参照が含まれています。 単語または語句は、現在ソフトウェアに表示されるため、一貫性を保つため、この記事で使用されます。 言語を削除するようにソフトウェアが更新されると、この記事は整合するように更新されます。
継承
IDmaChannel インターフェイスは、IUnknown インターフェイスから継承します。
メソッド
IDmaChannel インターフェイスには、次のメソッドがあります。
IDmaChannel::AllocateBuffer AllocateBuffer メソッドは、ポート ドライバーと DMA ハードウェアからアクセスできる共通バッファーを割り当てます。 |
IDmaChannel::AllocatedBufferSize AllocatedBufferSize メソッドは、割り当てられたバッファーのサイズを返します。 |
IDmaChannel::BufferSize BufferSize メソッドは、DMA チャネルのデータ バッファーのサイズをバイト単位で返します。 |
IDmaChannel::CopyFrom CopyFrom メソッドは、DMA チャネルの共通バッファーから指定された宛先バッファーにサンプル データをコピーします。 |
IDmaChannel::CopyTo CopyTo メソッドは、指定されたソース バッファーから DMA チャネルの共通バッファーにサンプル データをコピーします。 |
IDmaChannel::FreeBuffer FreeBuffer メソッドは、IDmaChannel::AllocateBuffer の前回の呼び出しによって割り当てられたバッファーを解放します。 |
IDmaChannel::GetAdapterObject GetAdapterObject メソッドは、DMA チャネルのハードウェア アダプター オブジェクトを返します。 |
IDmaChannel::MaximumBufferSize MaximumBufferSize メソッドは、この DMA チャネル オブジェクトがサポートするように構成されている最大バッファーのサイズをバイト単位で返します。 |
IDmaChannel::P hysicalAddress PhysicalAddress メソッドは、割り当てられたバッファーの物理アドレスを返します。 |
IDmaChannel::SetBufferSize SetBufferSize メソッドは、DMA チャネルの現在のバッファー サイズを設定します。 |
IDmaChannel::SystemAddress SystemAddress メソッドは、割り当てられたバッファーのシステム アドレスを返します。 |
IDmaChannel::TransferCount TransferCount メソッドは、下位 DMA オブジェクトによって現在転送されているバッファーのサイズをバイト単位で返します。 |
必要条件
要件 | 価値 |
---|---|
ターゲット プラットフォーム の | ウィンドウズ |
ヘッダー | portcls.h |