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