[仅适用于 KMDF]
WdfDmaTransactionSetSingleTransferRequirement 方法指定 DMA 事务必须在单个传输中完成。
语法
VOID WdfDmaTransactionSetSingleTransferRequirement(
[in] WDFDMATRANSACTION DmaTransaction,
[in] BOOLEAN RequireSingleTransfer
);
参数
[in] DmaTransaction
驱动程序从上一次调用 WdfDmaTransactionCreate获取的 DMA 事务对象的句柄。
[in] RequireSingleTransfer
一个布尔值,如果 TRUE,则指定 DMA 事务需要单个传输。
返回值
没有
注解
此方法仅请求单个事务的单个传输。 使用 WdfDmaTransactionRelease 并重新初始化事务对象时,此设置将重置,类似于其他事务级属性,例如立即执行和最大传输长度。
若要请求使用给定 DMA 启用器创建的所有 DMA 事务的单一传输,请在调用 WdfDmaEnablerCreate时在 WDF_DMA_ENABLER_CONFIG_FLAGS 中指定 WDF_DMA_ENABLER_CONFIG_REQUIRE_SINGLE_TRANSFER。 这相当于为使用 DMA 启用器创建的每个事务对象调用 WdfDmaTransactionSetSingleTransferRequirement。
驱动程序在创建或回收事务对象后调用 WdfDmaTransactionSetSingleTransferRequirement,但在初始化或执行事务对象之前。 有关详细信息,请参阅 使用单传输 DMA。
WdfDmaTransactionSetSingleTransferRequirement 需要 DMA 版本 3。 若要选择 DMA 版本 3,请将 WdmDmaVersionOverrideWDF_DMA_ENABLER_CONFIG 成员设置为 3。
要求
| 要求 | 价值 |
|---|---|
| 目标平台 | 普遍 |
| 最低 KMDF 版本 | 1.19 |
| 标头 | wdfdmatransaction.h (包括 Wdf.h) |
| 图书馆 | Wdf01000.sys(请参阅框架库版本控制。 |
| IRQL | <=DISPATCH_LEVEL |