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 通道对象不得驻留在分页内存中。
DmaChannel、OuterUnknown,ResourceList 参数遵循 COM 对象的 引用计数约定。
要求
要求 | 价值 |
---|---|
目标平台 | 普遍 |
标头 | portcls.h (包括 Portcls.h) |
IRQL | PASSIVE_LEVEL |