共用方式為


WDF_DMA_ENABLER_CONFIG_FLAGS列舉型別 (wdfdmaenabler.h)

[僅適用於 KMDF]

WDF_DMA_ENABLER_CONFIG_FLAGS 列舉型別會定義用於驅動程式 WDF_DMA_ENABLER_CONFIG 結構的旗標。

語法

typedef enum _WDF_DMA_ENABLER_CONFIG_FLAGS {
  WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION = 0x00000001,
  WDF_DMA_ENABLER_CONFIG_REQUIRE_SINGLE_TRANSFER = 0x00000002
} WDF_DMA_ENABLER_CONFIG_FLAGS;

常數

 
WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION
值:0x00000001
WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION旗標僅適用於下列 DMA 設定檔:


  • WdfDmaProfileScatterGather

  • WdfDmaProfileScatterGather64

  • WdfDmaProfileScatterGatherDuplex

  • WdfDmaProfileScatterGather64Duplex



根據預設,未設定 WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION,且 WDF_DMA_PROFILE 為上一個清單中的其中一個時,WDF
建立此 DMA 配接器交易所使用的散佈/收集清單外觀清單
物件。 清單專案會初始化,以允許指定的最大值
傳輸長度。 執行交易時,WDF 會呼叫 BuildScatterGatherList entry 函式。 向前進度驅動程式
不得設定此旗標,且必須使用先前顯示的四個配置檔之一。

當設定 WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATIONWDF_DMA_PROFILE 是上一個清單中的其中一個時,WDF 不會建立外觀清單。 執行交易時,WDF 會呼叫 GetScatterGatherList

設定 WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION 可能會導致記憶體使用量降低,特別是傳輸長度上限較大時。 不過,設定此旗標可能會導致在記憶體不足的情況下執行 DMA 作業失敗。 若要保證 WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION 設定時向前進度,驅動程式可能會使用個別的 DMA 啟用器,或透過一般緩衝區彈跳傳輸。
WDF_DMA_ENABLER_CONFIG_REQUIRE_SINGLE_TRANSFER
值:0x00000002
從 KMDF 1.19 版開始,即可使用 WDF_DMA_ENABLER_CONFIG_REQUIRE_SINGLE_TRANSFER 旗標。 此旗標也需要 DMA 第 3 版。
若要選取 DMA 第 3 版,請將 WdmDmaVersionOverrideWDF_DMA_ENABLER_CONFIG 成員設為 3。

此旗標適用於所有 DMA 設定檔。 設定時,WDF 不會將此啟用程式所建立的任何 WDFDMATRANSACTION 片段化為多個 DMA 傳輸。 如果無法這樣做,嘗試初始化或執行交易失敗。 此選項適用於需要在單一 DMA 作業中接收所有資料的裝置。

驅動程式也可以選擇在具有 WdfDmaTransactionSetSingleTransferRequirement的每個交易層級上指定此專案。

如需詳細資訊,請參閱使用單一傳輸 DMA

備註

您可以為此頁面上 旗標WDF_DMA_ENABLER_CONFIG 結構的成員指定有效的位 OR 值。

需求

要求 價值
最低 KMDF 版本 1.11
標題 wdfdmaenabler.h (包括 Wdf.h)

另請參閱

WDF_DMA_ENABLER_CONFIG

WDF_DMA_PROFILE

WdfDmaTransactionSetSingleTransferRequirement