IPortWaveCyclic::NewSlaveDmaChannel 方法(portcls.h)
NewSlaveDmaChannel
方法创建从属 DMA 通道的新实例。
语法
NTSTATUS NewSlaveDmaChannel(
[out] PDMACHANNELSLAVE *DmaChannel,
[in] PUNKNOWN OuterUnknown,
[in] PRESOURCELIST ResourceList,
[in] ULONG DmaIndex,
[in] ULONG MaximumLength,
[in] BOOLEAN DemandMode,
[in] DMA_SPEED DmaSpeed
);
参数
[out] DmaChannel
指向调用方分配的指针变量的指针,该方法将指针写入到新 DMA 通道对象的 IDmaChannelSlave 接口。 为此参数指定有效的非NULL 指针值。
[in] OuterUnknown
指向需要聚合 DMA 通道对象的对象的 IUnknown 接口的指针。 此参数是可选的。 如果不需要聚合,请将此参数指定为 NULL。
[in] ResourceList
指向 IResourceList 对象的指针。 此资源列表包含描述 DMA 通道的资源。
[in] DmaIndex
DMA 通道描述符的资源列表中的索引。 该函数使用此值作为对 ResourceList 对象的 IResourceList::FindxxxEntry 方法的调用参数。
[in] MaximumLength
将与此通道关联的循环 DMA 缓冲区的最大长度(以字节为单位)。
[in] DemandMode
指示与 DMA 通道关联的设备是否支持需求模式。
[in] DmaSpeed
可以将 DMA 速度指定为以下DMA_SPEED枚举值之一:兼容、TypeA、TypeB、TypeC或 TypeF。
返回值
如果调用成功,NewSlaveDmaChannel
返回STATUS_SUCCESS。 否则,该方法将返回适当的错误代码。
言论
注意
Microsoft支持多样化的包容性环境。 本文包含有关无偏见通信 Microsoft风格指南 识别为排除项的术语的参考。 本文中的单词或短语用于一致性,因为它当前显示在软件中。 当软件更新为删除语言时,本文将更新为对齐方式。
参数 MaximumLength、DemandMode,DmaSpeed 与具有相同名称的 DEVICE_DESCRIPTION 结构的成员相似。
缺少 DMA 硬件功能的 WaveCyclic 设备称为 从属设备。 相比之下,主设备 具有内置的总线主控 DMA 硬件。 从属设备必须依赖系统 DMA 控制器来执行它所需的任何数据传输。
NewSlaveDmaChannel
方法为从属设备创建 DMA 通道对象。 若要为主设备创建 DMA 通道对象,请改为调用 IPortWaveCyclic::NewMasterDmaChannel 方法。 Microsoft Windows 驱动程序工具包 (WDK) 中的 sb16 示例音频驱动程序是从属设备的 WaveCyclic 微型端口驱动程序的示例。 有关主设备和从属设备的详细信息,请参阅 IDmaChannel 和 IDmaChannelSlave。
DmaChannel、OuterUnknown,ResourceList 参数遵循 COM 对象的 引用计数约定。
要求
要求 | 价值 |
---|---|
目标平台 | 普遍 |
标头 | portcls.h (包括 Portcls.h) |
IRQL | PASSIVE_LEVEL |