共用方式為


WDF_DMA_ENABLER_CONFIG 結構 (wdfdmaenabler.h)

[僅適用於 KMDF]

WDF_DMA_ENABLER_CONFIG 結構提供 DMA 啟用器物件的特性。

語法

typedef struct _WDF_DMA_ENABLER_CONFIG {
  ULONG                                    Size;
  WDF_DMA_PROFILE                          Profile;
  size_t                                   MaximumLength;
  PFN_WDF_DMA_ENABLER_FILL                 EvtDmaEnablerFill;
  PFN_WDF_DMA_ENABLER_FLUSH                EvtDmaEnablerFlush;
  PFN_WDF_DMA_ENABLER_DISABLE              EvtDmaEnablerDisable;
  PFN_WDF_DMA_ENABLER_ENABLE               EvtDmaEnablerEnable;
  PFN_WDF_DMA_ENABLER_SELFMANAGED_IO_START EvtDmaEnablerSelfManagedIoStart;
  PFN_WDF_DMA_ENABLER_SELFMANAGED_IO_STOP  EvtDmaEnablerSelfManagedIoStop;
  ULONG                                    AddressWidthOverride;
  ULONG                                    WdmDmaVersionOverride;
  ULONG                                    Flags;
} WDF_DMA_ENABLER_CONFIG, *PWDF_DMA_ENABLER_CONFIG;

成員

Size

這個結構的大小,以位元組為單位。

Profile

WDF_DMA_PROFILE型別值,可識別與 DMA 啟用者對象相關聯的總線主要 DMA 作業類型。

MaximumLength

裝置可以在單一 DMA 傳輸中處理的預設大小上限,以位元組為單位。 (驅動程式可以呼叫 WdfDmaTransactionSetMaximumLength.) 如果您的驅動程式必須在支援最多 16 個地圖緩存器之 Microsoft Windows 操作系統版本上執行,MaximumLength 必須小於 65,536,即可覆寫個別 DMA 交易的預設值。

EvtDmaEnablerFill

驅動程式 EvtDmaEnablerFill 事件回呼函式或 NULL 的指標。

EvtDmaEnablerFlush

驅動程式 EvtDmaEnablerFlush 事件回呼函式或 NULL 的指標。

EvtDmaEnablerDisable

驅動程式 EvtDmaEnablerDisable 事件回呼函式或 NULL 的指標。

EvtDmaEnablerEnable

驅動程式 EvtDmaEnablerEnable 事件回呼函式或 NULL 的指標。

EvtDmaEnablerSelfManagedIoStart

驅動程式 EvtDmaEnablerSelfManagedIoStart 事件回呼函式或 NULL 的指標。

EvtDmaEnablerSelfManagedIoStop

驅動程式 EvtDmaEnablerSelfManagedIoStop 事件回呼函式或 NULL 的指標。

AddressWidthOverride

設定為零,以接受 配置檔中指定的位址寬度。 驅動程式可以將這個成員設定為介於 24 到 63 之間的值,以覆寫 配置檔 位址寬度。 如果您的驅動程式指定系統模式 DMA 配置檔, AddressWidthOverride 必須為零。 如果您的驅動程式指定 32 位 DMA 配置檔, AddressWidthOverride 不能大於 32。 AddressWidthOverride 成員可在 1.11 版和更新版本的 KMDF 中使用。 如需詳細資訊,請參閱

WdmDmaVersionOverride

設定為零以接受預設的 DMA 版本。 若要要求 DMA 第 3 版,請將 設定為 3。 WdmDmaVersionOverride 成員可在 1.11 版和更新版本的 KMDF 中使用。 DMA 第 3 版是從 Windows 8 開始提供。

Flags

WDF_DMA_ENABLER_CONFIG_FLAGS 列舉中的 一個或多個值的位 OR。 Flags 成員可在 1.11 版和更新版本的 KMDF 中使用。

備註

WDF_DMA_ENABLER_CONFIG 結構是做為 WdfDmaEnablerCreate 方法的輸入參數。

驅動程式必須呼叫 WDF_DMA_ENABLER_CONFIG_INIT ,才能初始化 WDF_DMA_ENABLER_CONFIG 結構。

在 Windows 8 和更新版本中,當驅動程式提供 AddressWidthOverride 的非零值時,架構會要求 DMA 第 3 版,並將 AddressWidthOverride 值傳遞至 HAL。

在 Windows 7 和 Windows Vista 上,當驅動程式提供 AddressWidthOverride 的非零值時,架構會使用 32 位或 24 位 DMA。 例如,如果驅動程式指定 64 位配置檔,並提供 32 的 AddressWidthOverride ,則架構會使用 32 位 DMA。 如果驅動程式指定 32 位配置檔,並提供 24 的 AddressWidthOverride ,架構會使用 24 位 DMA。

規格需求

需求
最小 KMDF 版本 1.0
標頭 wdfdmaenabler.h (包含 Wdf.h)

另請參閱

EvtDmaEnablerDisable

EvtDmaEnablerEnable

EvtDmaEnablerFill

EvtDmaEnablerFlush

EvtDmaEnablerSelfManagedIoStart

EvtDmaEnablerSelfManagedIoStop

WDF_DMA_ENABLER_CONFIG_INIT

WDF_DMA_PROFILE

WdfDmaEnablerCreate

WdfDmaTransactionSetMaximumLength