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 |