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