IDmaChannel::AllocateBuffer 方法(portcls.h)

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

语法

NTSTATUS AllocateBuffer(
  ULONG             BufferSize,
  PPHYSICAL_ADDRESS PhysicalAddressConstraint
);

参数

BufferSize

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

PhysicalAddressConstraint

指定要放置在缓冲区的物理地址上的可选约束。 如果此参数为非 NULL,则只有约束地址中设置的位会因缓冲区的开头到末尾而有所不同。 例如,若要请求不跨越 64 千字节边界的缓冲区,请指定物理地址约束0x000000000000FFFF。

返回值

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

言论

只有在创建 DMA 通道对象后才调用此方法,除非之前分配的缓冲区首先通过调用 FreeBuffer 释放。

要求

要求 价值
标头 portcls.h
IRQL PASSIVE_LEVEL

另请参阅

IDmaChannel