IPortWavePci::NewMasterDmaChannel 方法(portcls.h)

NewMasterDmaChannel 方法创建总线主 DMA 通道的新实例。

语法

NTSTATUS NewMasterDmaChannel(
                 PDMACHANNEL   *OutDmaChannel,
  [in, optional] PUNKNOWN      OuterUnknown,
  [in]           POOL_TYPE     PoolType,
  [in, optional] PRESOURCELIST ResourceList,
  [in]           BOOLEAN       ScatterGather,
  [in]           BOOLEAN       Dma32BitAddresses,
  [in]           BOOLEAN       Dma64BitAddresses,
  [in]           BOOLEAN       IgnoreCount,
  [in]           DMA_WIDTH     DmaWidth,
  [in]           DMA_SPEED     DmaSpeed,
  [in]           ULONG         MaximumLength,
  [in]           ULONG         DmaPort
);

参数

OutDmaChannel

[in, optional] OuterUnknown

指向需要聚合 DMA 通道对象的对象的 IUnknown 接口的指针。 此参数是可选的。 如果不需要聚合,请将此参数指定为 NULL

[in] PoolType

指定要从中分配对象的存储池的类型。 这是一个 POOL_TYPE 枚举值。 指定此参数的非分页池类型。

[in, optional] ResourceList

指向微型端口驱动程序的资源列表的指针,该列表是 IResourceList 对象。 此参数是可选的,可以指定为 NULL NewMasterDmaChannel 方法当前不使用此参数。

[in] ScatterGather

请求 DMA 通道支持散点/收集 DMA。 始终将此参数设置为 TRUE

[in] Dma32BitAddresses

指定对 DMA作使用 32 位地址。

[in] Dma64BitAddresses

指定对 DMA作使用 64 位地址。

[in] IgnoreCount

指示是否忽略 DMA 控制器的传输计数器。 如果此平台中的 DMA 控制器不维护准确的传输计数器,则设置为 TRUE,因此需要解决方法。

[in] DmaWidth

未使用。 设置为(DMA_WIDTH)(-1)。

[in] DmaSpeed

未使用。 设置为(DMA_SPEED)(-1)。

[in] MaximumLength

缓冲区中将与此 DMA 通道关联的最大字节数。

[in] DmaPort

未使用。 设置为 0。

返回值

如果调用成功,NewMasterDmaChannel 返回STATUS_SUCCESS。 否则,它将返回适当的错误代码。

言论

NewMasterDmaChannel 方法的调用参数的定义与具有相同名称的 DEVICE_DESCRIPTION 结构成员的定义相似。

PoolType 参数指定为POOL_TYPE枚举中定义的非分页池类型之一。 由于可以从 IRQL DISPATCH_LEVEL调用 IDmaChannel 接口中的一些方法,因此 DMA 通道对象不得驻留在分页内存中。

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

要求

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

另请参阅

DEVICE_DESCRIPTION

IDmaChannel

IPortWavePci

IResourceList

POOL_TYPE