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 結構中指定的預設值,則指定的值會覆寫預設值。
  • 如果指定的值大於預設值,則會忽略指定的值。

傳回值

備註

如果驅動程式提供無效的物件句柄,就會發生錯誤檢查。

您的驅動程序必須先初始化 DMA 交易,才能呼叫 WdfDmaTransactionSetMaximumLength

如需初始化 DMA 交易的相關信息,請參閱 建立和初始化 DMA 交易

範例

下列程式代碼範例會將指定 DMA 交易的傳輸長度上限設定為驅動程式定義的值。

WdfDmaTransactionSetMaximumLength(
                                 dmaTransaction,
                                 MAX_TRANSFER_LENGTH/2,
                                 );

規格需求

需求
目標平台 Universal
最低 KMDF 版本 1.0
標頭 wdfdmatransaction.h (包含 Wdf.h)
程式庫 Wdf01000.sys (請參閱 Framework Library Versioning.)
IRQL <=DISPATCH_LEVEL
DDI 合規性規則 DriverCreate (kmdf)

另請參閱

WDF_DMA_ENABLER_CONFIG

WdfDmaTransactionCreate