IDmaChannel 接口 (portcls.h)
接口 IDmaChannel
提供 DMA 通道及其关联的 DMA 缓冲区和用法参数的抽象。 WaveCyclic 或 WavePci 端口驱动程序实现此接口,并将其公开给 WaveCyclic 或 WavePci 微型端口驱动程序。 微型端口驱动程序通过调用端口驱动程序的 NewXxxDmaChannel 方法之一IDmaChannel
来获取对端口驱动程序实现对象的引用:
IDmaChannel
接口。 有关此内容的详细信息,请参阅 波形筛选器。 当端口驱动程序调用微型端口驱动程序的 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 |