[仅适用于 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) |