IDmaChannel 介面 (portcls.h)
IDmaChannel
介面提供 DMA 通道及其相關聯 DMA 緩衝區和使用方式參數的抽象概念。 WaveCyclic 或 WavePci 連接埠驅動程式會實作此介面,並將其公開給 WaveCyclic 或 WavePci 迷你埠驅動程式。 迷你埠驅動程式會呼叫其中一個埠驅動程式的 NewXxxDmaChannel 方法,以取得埠驅動程式實作 IDmaChannel
物件的參考:
IDmaChannel
介面。 如需詳細資訊,請參閱 Wave Filters。 當埠驅動程式呼叫 miniport 驅動程式的 NewStream 方法時(例如,IMiniportWaveCyclic::NewStream),方法會將 miniport 驅動程式的 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 物件傳輸之緩衝區的位元組大小。 |
要求
要求 | 價值 |
---|---|
目標平臺 | 窗戶 |
標頭 | portcls.h |