共用方式為


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