IDmaChannel 接口 (portcls.h)
IDmaChannel
接口提供 DMA 通道及其关联的 DMA 缓冲区和用法参数的抽象。 WaveCyclic 或 WavePci 端口驱动程序实现此接口,并将其公开给 WaveCyclic 或 WavePci 微型端口驱动程序。 微型端口驱动程序通过调用端口驱动程序的新XxxDmaChannel 方法获取对端口驱动程序实现 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 对象传输的缓冲区的大小(以字节为单位)。 |
要求
要求 | 价值 |
---|---|
目标平台 | 窗户 |
标头 | portcls.h |