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

指定将 32 位地址用于 DMA 操作。

[in] Dma64BitAddresses

指定将 64 位地址用于 DMA 操作。

[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 枚举中定义的非分页池类型之一。 DMA 通道对象不得驻留在分页内存中,因为可以从 IRQL DISPATCH_LEVEL调用 IDmaChannel 接口中的多个方法。

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

要求

要求
目标平台 通用
标头 portcls.h (包括 Portcls.h)
IRQL PASSIVE_LEVEL

另请参阅

DEVICE_DESCRIPTION

IDmaChannel

IPortWavePci

IResourceList

POOL_TYPE