IDmaChannel インターフェイス (portcls.h)
インターフェイスは IDmaChannel
、DMA チャネルとそれに関連付けられている DMA バッファーと使用パラメーターの抽象化を提供します。 WaveCyclic または WavePci ポート ドライバーは、このインターフェイスを実装し、それを WaveCyclic または WavePci ミニポート ドライバーに公開します。 ミニポート ドライバーは、ポート ドライバーの新しいXxxDmaChannel メソッドのいずれかを呼び出すことによって、オブジェクトのポート ドライバーの実装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 オブジェクトによって現在転送されているバッファーのサイズをバイト単位で返します。 |
要件
要件 | 値 |
---|---|
対象プラットフォーム | Windows |
ヘッダー | portcls.h |