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) |