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 |
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈