IDmaChannel::AllocateBuffer 方法 (portcls.h)

AllocateBuffer 方法分配一个可由端口驱动程序和 DMA 硬件访问的公共缓冲区。

语法

NTSTATUS AllocateBuffer(
  ULONG             BufferSize,
  PPHYSICAL_ADDRESS PhysicalAddressConstraint
);

参数

BufferSize

指定要分配的缓冲区的大小(以字节为单位)。

PhysicalAddressConstraint

指定要放置在缓冲区的物理地址上的可选约束。 如果此参数为非 NULL,则只有约束地址中设置的位会从缓冲区的开始到结束。 例如,若要请求不跨 64 kb 边界的缓冲区,请指定物理地址约束0x000000000000FFFF。

返回值

此方法返回 NTSTATUS。 如果调用成功,AllocateBuffer 将返回STATUS_SUCCESS。 否则,该方法将返回相应的错误代码。

注解

创建 DMA 通道对象后,只能调用此方法一次,除非通过调用 FreeBuffer 首先释放以前分配的缓冲区。

要求

要求
Header portcls.h
IRQL PASSIVE_LEVEL

另请参阅

IDmaChannel