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) |
另請參閱
EvtDmaEnablerSelfManagedIoStart