[仅适用于 KMDF]
当框架具有执行和释放事务的保留资源时,将调用 EvtReserveDma 事件回调函数。 保留的资源包括映射寄存器和 WDM DMA 适配器的锁。
语法
EVT_WDF_RESERVE_DMA EvtWdfReserveDma;
void EvtWdfReserveDma(
[in] WDFDMATRANSACTION DmaTransaction,
[in] PVOID Context
)
{...}
参数
[in] DmaTransaction
DMA 事务对象的句柄,该句柄表示分配给 DMA 资源的事务。
[in] Context
在上一次调用 WdfDmaTransactionAllocateResources中指定的驱动程序指定的上下文指针。
返回值
没有
注解
驱动程序通过调用 WdfDmaTransactionAllocateResources注册 EvtReserveDma 事件回调函数。
当为 DMA 资源分配用于与关联的事务对象独占使用时,框架将调用驱动程序的 EvtReserveDma 事件回调函数。 驱动程序可以在保留此预留时多次初始化和执行事务。
驱动程序通常初始化事务,然后从其 EvtReserveDma 事件回调函数中启动事务。 有关预留序列的详细信息,请参阅 保留 DMA 资源。
驱动程序可以从 EvtReserveDma中调用 WdfDmaTransactionFreeResources。
在早于 Windows 8 的作系统上,EvtReserveDma 必须与指定数据包模式 DMA 启用器的启用器一起使用。 从 Windows 8 开始,EvtReserveDma 还可用于指定系统模式 DMA 启用器的启用器。
要求
要求 | 价值 |
---|---|
目标平台 | 普遍 |
最低 KMDF 版本 | 1.11 |
标头 | wdfdmatransaction.h (包括 Wdf.h) |
IRQL | DISPATCH_LEVEL |