PFREE_MAP_REGISTERS回调函数 (wdm.h)

FreeMapRegisters 例程释放一组从调用 AllocateAdapterChannel 保存的映射寄存器。

语法

PFREE_MAP_REGISTERS PfreeMapRegisters;

void PfreeMapRegisters(
  [in] PDMA_ADAPTER DmaAdapter,
  [in] PVOID MapRegisterBase,
  [in] ULONG NumberOfMapRegisters
)
{...}

参数

[in] DmaAdapter

指向 IoGetDmaAdapter 返回的DMA_ADAPTER结构的指针,该结构表示总线主适配器或 DMA 控制器。

[in] MapRegisterBase

指定为 DMA 操作分配的映射寄存器。 系统将此值传递给驱动程序的 AdapterControl 例程。

[in] NumberOfMapRegisters

指定要发布的映射寄存器数。 此值必须与之前调用 AllocateAdapterChannel 中指定的数字匹配。

返回值

备注

FreeMapRegisters 不是可直接按名称调用的系统例程。 此例程只能由指针从 DMA_OPERATIONS 结构中返回的地址调用。 驱动程序通过调用 IoGetDmaAdapter 获取此例程的地址。

当总线主设备的驱动程序完成当前基于数据包的 DMA 传输请求时,它会调用 FreeMapRegisters 来释放以前通过调用 AllocateAdapterChannel 分配并保留的映射寄存器,因为其 AdapterControl 例程返回 DeallocateObjectKeepRegisters。 驱动程序必须在调用 FlushAdapterBuffers 后调用 FreeMapRegisters

要求

要求
最低受支持的客户端 从 Windows 2000 开始可用。
目标平台 桌面
标头 wdm.h(包括 Wdm.h、Ntddk.h、Ntifs.h)
IRQL DISPATCH_LEVEL
DDI 符合性规则 IrqlDispatch (storport) 、IrqlDispatch (storport) 、 IrqlDispatch (wdm)

另请参阅

AllocateAdapterChannel

DMA_ADAPTER

DMA_OPERATIONS

IoGetDmaAdapter

MapTransfer