IDmaChannel 介面 (portcls.h)

介面 IDmaChannel 提供 DMA 通道及其相關聯 DMA 緩衝區和使用參數的抽象概念。 WaveCyclic 或 WavePci 埠驅動程式會實作此介面,並將它公開給 WaveCyclic 或 WavePci 迷你埠驅動程式。 迷你埠驅動程式會呼叫其中一個埠驅動程式的 NewXxxDmaChannel 方法,以取得物件的埠驅動程式實 IDmaChannel 作參考:

IPortWavePci::NewMasterDmaChannel

IPortWaveCyclic::NewMasterDmaChannel

IPortWaveCyclic::NewSettingeDmaChannel

如果迷你埠驅動程式需要不在埠驅動程式的預設實作中,也可以實作自己的 IDmaChannel 介面。 如需詳細資訊,請參閱 Wave Filters。 當埠驅動程式呼叫 miniport 驅動程式的 NewStream 方法 (例如 IMiniportWaveCyclic::NewStream) 時,此方法會將迷你埠驅動程式 IDmaChannel 的物件輸出至埠驅動程式。 IDmaChannel 繼承自 IUnknown 介面。

Portcls.sys中介面的目前實作 IDmaChannel 不是多執行緒安全,因為它不會在內部同步存取共用資料。 一般而言,單一驅動程式執行緒會呼叫 物件的 方法 IDmaChannel 。 在此情況下,兩個方法呼叫不會同時存取相同的資料。 不過,如果多個執行緒可能同時呼叫物件的方法 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