WDF_DMA_SYSTEM_PROFILE_CONFIG結構 (wdfdmaenabler.h)

[僅適用於 KMDF]

WDF_DMA_SYSTEM_PROFILE_CONFIG結構描述與系統模式 DMA 啟用程式相關的硬體特定設定。

語法

typedef struct _WDF_DMA_SYSTEM_PROFILE_CONFIG {
  ULONG                           Size;
  BOOLEAN                         DemandMode;
  BOOLEAN                         LoopedTransfer;
  DMA_WIDTH                       DmaWidth;
  PHYSICAL_ADDRESS                DeviceAddress;
  PCM_PARTIAL_RESOURCE_DESCRIPTOR DmaDescriptor;
} WDF_DMA_SYSTEM_PROFILE_CONFIG, *PWDF_DMA_SYSTEM_PROFILE_CONFIG;

成員

Size

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

DemandMode

指定傳輸是由裝置的 DMA 所控制
在這個結構的 DmaDescriptor 成員中指定的要求行。 如需詳細資訊,請參閱。

LoopedTransfer

指定如果長度大於緩衝區的大小,DMA 配接器應該繞著指定的傳輸迴圈。

DmaWidth

DeviceAddress 所指定的緩存器寬度。 可能的值為 Width8Bits、Width16Bits、Width32Bits 和 Width64Bits。

DeviceAddress

DMA 控制器傳輸的轉譯位址。 驅動程式可以藉由呼叫 WdfDmaTransactionSetDeviceAddressOffset 來指定每個交易上這個基地址的位移。

DmaDescriptor

EvtDevicePrepareHardware 期間指派裝置之 DMA 通道的已翻譯資源描述項。 這會提供適配卡的 DMA 要求行。

備註

驅動程式會在建立系統配置檔 DMA 啟用程式之後,將此結構提供給 WdfDmaEnablerConfigureSystemProfile

一般而言,驅動程式將 DemandMode 設定為 TRUE。 驅動程式的 EvtProgramDma 回 呼函式接著會程式設計裝置來判斷提示其 DMA 要求行並起始傳輸。 在此情況下,當 EvtProgramDma 仍在執行時,傳輸可能會開始。

驅動程式必須確定在驅動程式的 EvtProgramDma 回呼函式開始執行之前,不會判斷提示裝置的 DMA 要求行。 否則,DMA 傳輸可以在架構呼叫 EvtProgramDma 之前開始。

如果 DemandMode 設定為 FALSE,則 DMA 傳輸可能會在架構呼叫驅動程式的 EvtProgramDma 函式之前開始。

規格需求

需求
最低支援的用戶端 Windows 8
最低 KMDF 版本 1.11
標頭 wdfdmaenabler.h (包含 Wdf.h)

另請參閱

WDF_DMA_SYSTEM_PROFILE_CONFIG_INIT

WdfDmaEnablerConfigureSystemProfile