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