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。 否则,该方法将返回适当的错误代码。

言论

参数 MaximumLengthDma32BitAddressesDma64BitAddressesDmaWidthDmaSpeed 与具有相同名称的 DEVICE_DESCRIPTION 结构的成员的含义相似。

具有内置总线主控 DMA 硬件的 WaveCyclic 设备称为 主设备。 相比之下,从属设备 缺少 DMA 硬件,并且必须依赖系统 DMA 控制器来执行它所需的任何数据传输。 NewMasterDmaChannel 方法为主设备创建 DMA 通道对象。 若要为从属设备创建 DMA 通道对象,请改为调用 IPortWaveCyclic::NewSlaveDmaChannel 方法。 有关主设备和从属设备的详细信息,请参阅 IDmaChannelIDmaChannelSlave

DmaChannelOuterUnknownResourceList 参数遵循 COM 对象的 引用计数约定

注意

Microsoft支持多样化的包容性环境。 本文包含有关无偏见通信 Microsoft风格指南 识别为排除项的术语的参考。 本文中的单词或短语用于一致性,因为它当前显示在软件中。 当软件更新为删除语言时,本文将更新为对齐方式。

要求

要求 价值
目标平台 普遍
标头 portcls.h (包括 Portcls.h)
IRQL PASSIVE_LEVEL

另请参阅

DEVICE_DESCRIPTION

IDmaChannel

IDmaChannelSlave

IPortWaveCyclic

IPortWaveCyclic::NewSlaveDmaChannel

IResourceList