PFREE_COMMON_BUFFER回调函数 (wdm.h)
FreeCommonBuffer 例程释放由 AllocateCommonBuffer分配的通用缓冲区,以及缓冲区使用的所有资源。
语法
PFREE_COMMON_BUFFER PfreeCommonBuffer;
void PfreeCommonBuffer(
[in] PDMA_ADAPTER DmaAdapter,
[in] ULONG Length,
[in] PHYSICAL_ADDRESS LogicalAddress,
[in] PVOID VirtualAddress,
[in] BOOLEAN CacheEnabled
)
{...}
参数
[in] DmaAdapter
指向 IoGetDmaAdapter 返回的 DMA_ADAPTER 结构的指针,该结构表示总线主适配器或 DMA 控制器。
[in] Length
指定要解除分配的字节数。
[in] LogicalAddress
指定已分配内存范围的逻辑地址。
[in] VirtualAddress
指向已分配内存范围的相应虚拟地址的指针。
[in] CacheEnabled
指示是否缓存分配的内存。
返回值
没有
言论
FreeCommonBuffer 不是可以直接按名称调用的系统例程。 此例程只能通过从 DMA_OPERATIONS 结构中返回的地址的指针进行调用。 驱动程序通过调用 IoGetDmaAdapter获取此例程的地址。
若要释放通用缓冲区,驱动程序调用 FreeCommonBuffer 来取消映射其逻辑地址和虚拟地址。 传递给 FreeCommonBuffer 的参数必须与从 allocateCommonBuffer 传递和返回的参数完全匹配。 驱动程序无法释放分配的通用缓冲区的一部分。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | 从 Windows 2000 开始可用。 |
目标平台 | 桌面 |
标头 | wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h) |
IRQL | PASSIVE_LEVEL |
DDI 符合性规则 | IrqlDispatch(wdm) |