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 接口中的多个方法。
DmaChannel、OuterUnknown 和 ResourceList 参数遵循 COM 对象的引用计数约定。
要求
要求 | 值 |
---|---|
目标平台 | 通用 |
标头 | portcls.h (包括 Portcls.h) |
IRQL | PASSIVE_LEVEL |