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) |