WdfDmaTransactionSetMaximumLength 函数 (wdfdmatransaction.h)

[仅适用于 KMDF]

WdfDmaTransactionSetMaximumLength 方法设置与指定 DMA 事务关联的 DMA 传输的最大长度。

语法

void WdfDmaTransactionSetMaximumLength(
  [in] WDFDMATRANSACTION DmaTransaction,
  [in] size_t            MaximumLength
);

参数

[in] DmaTransaction

驱动程序从上一次调用 WdfDmaTransactionCreate 获取的 DMA 事务对象的句柄。

[in] MaximumLength

设备可在单个 DMA 传输操作中处理的最大大小(以字节为单位)。 如果驱动程序必须在最多支持 16 个 映射寄存器的 Microsoft Windows 操作系统版本上运行, 则 MaximumLength 必须小于 65536。

MaximumLength 值仅适用于指定的 DMA 事务,如下所示:

  • 如果指定的值小于驱动程序在其 WDF_DMA_ENABLER_CONFIG 结构中指定的默认值,则指定的值将替代默认值。
  • 如果指定的值大于默认值,则忽略指定的值。

返回值

备注

如果驱动程序提供无效的对象句柄,则会发生 bug 检查。

驱动程序必须在调用 WdfDmaTransactionSetMaximumLength 之前初始化 DMA 事务。

有关初始化 DMA 事务的信息,请参阅 创建和初始化 DMA 事务

示例

下面的代码示例将指定 DMA 事务的最大传输长度设置为驱动程序定义的值。

WdfDmaTransactionSetMaximumLength(
                                 dmaTransaction,
                                 MAX_TRANSFER_LENGTH/2,
                                 );

要求

要求
目标平台 通用
最低 KMDF 版本 1.0
标头 wdfdmatransaction.h (包括 Wdf.h)
Library Wdf01000.sys (请参阅框架库版本控制.)
IRQL <=DISPATCH_LEVEL
DDI 符合性规则 DriverCreate (kmdf)

另请参阅

WDF_DMA_ENABLER_CONFIG

WdfDmaTransactionCreate