[僅適用於 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) |