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)

另请参阅

AllocateCommonBuffer

DMA_ADAPTER

DMA_OPERATIONS

IoGetDmaAdapter