WdfDmaEnablerConfigureSystemProfile 函数 (wdfdmaenabler.h)

[仅适用于 KMDF]

WdfDmaEnablerConfigureSystemProfile 方法配置系统模式 DMA 启用程序的硬件特定设置,并完成资源初始化。

语法

NTSTATUS WdfDmaEnablerConfigureSystemProfile(
  [in] WDFDMAENABLER                  DmaEnabler,
  [in] PWDF_DMA_SYSTEM_PROFILE_CONFIG ProfileConfig,
  [in] WDF_DMA_DIRECTION              ConfigDirection
);

参数

[in] DmaEnabler

DMA 启用器对象的句柄。

[in] ProfileConfig

指向 WDF_DMA_SYSTEM_PROFILE_CONFIG 结构的指针。 驱动程序必须通过调用 WDF_DMA_SYSTEM_PROFILE_CONFIG_INIT来初始化此结构。

[in] ConfigDirection

指定 DMA 传输作方向的 WDF_DMA_DIRECTION类型值。 如果此启用器的 WDF_DMA_PROFILE 值未 WdfDmaProfileSystemDuplex,框架将忽略此参数。

返回值

WdfDmaEnablerConfigureSystemProfile 如果作成功,则返回STATUS_SUCCESS。 否则,该方法可能会返回以下值之一。

返回代码 说明
STATUS_NOT_SUPPORTED
驱动程序请求了当前作系统不支持的 DMA 配置。
STATUS_INVALID_PARAMETER
驱动程序在 ProfileConfig 参数中提供了 NULL。
STATUS_INFO_LENGTH_MISMATCH
ProfileConfig 参数指向的结构的 大小 成员不等于 WDF_DMA_SYSTEM_PROFILE_CONFIG 结构的大小。
STATUS_INVALID_PARAMETER
ProfileConfig 参数指向的结构 DmaDescriptor 成员为 NULL,或者 ConfigDirection 参数包含无效值。

注解

在调用 WdfDmaEnablerConfigureSystemProfile之前,驱动程序必须调用 WdfDmaEnablerCreate 来创建 enabler 对象。

驱动程序通常从 EvtDevicePrepareHardware 回调函数调用 WdfDmaEnablerConfigureSystemProfile

如果驱动程序在调用 WdfDmaEnablerCreate时指定双工配置文件,则 WdfDmaEnablerConfigureSystemProfile 方法的 ConfigDirection 参数 值必须 WdfDmaDirectionReadFromDevice 才能获取读取作的 DMA_ADAPTER 结构,WdfDmaDirectionWriteToDevice 以获取写入作 DMA_ADAPTER 结构。

如果 DMA 启用器是双工启用器,则驱动程序必须先初始化特定方向,然后才能使用它。

如果驱动程序未指定双工配置文件,驱动程序可以指定 WdfDmaDirectionReadFromDeviceWdfDmaDirectionWriteToDevice

例子

下面的代码示例来自驱动程序的 EvtDevicePrepareHardware 回调函数。 此示例初始化 WDF_DMA_SYSTEM_PROFILE_CONFIG 结构并调用 WdfDmaEnablerConfigureSystemProfile


WDF_DMA_SYSTEM_PROFILE_CONFIG systemDmaConfig;  
PHYSICAL_ADDRESS pa;  
 
pa.QuadPart = 0;  
  
WDF_DMA_SYSTEM_PROFILE_CONFIG_INIT(&systemDmaConfig,   
                                   pa,  
                                   Width8Bits,  
                                   partial);  
  
systemDmaConfig.DemandMode = true;  
 
ntStatus = WdfDmaEnablerConfigureSystemProfile(fdoExtension->DmaEnabler,   
                                               &systemDmaConfig,   
                                               WdfDmaDirectionReadFromDevice);  

要求

要求 价值
最低支持的客户端 Windows 8
目标平台 普遍
最低 KMDF 版本 1.11
标头 wdfdmaenabler.h (包括 Wdf.h)
图书馆 Wdf01000.sys(请参阅框架库版本控制。
IRQL PASSIVE_LEVEL
DDI 符合性规则 DriverCreate(kmdf)

另请参阅

WDF_DMA_ENABLER_CONFIG

WDF_DMA_ENABLER_CONFIG_INIT

WDF_DMA_SYSTEM_PROFILE_CONFIG_INIT

WdfDmaEnablerCreate