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

一个WDF_DMA_DIRECTION类型的值,该值指定 DMA 传输操作的方向。 如果此启用器的 WDF_DMA_PROFILE 值不是 WdfDmaProfileSystemDuplex,则框架将忽略此参数。

返回值

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

返回代码 说明
STATUS_NOT_SUPPORTED
驱动程序请求当前操作系统不支持的 DMA 配置。
STATUS_INVALID_PARAMETER
驱动程序在 ProfileConfig 参数中提供了 NULL。
STATUS_INFO_LENGTH_MISMATCH
ProfileConfig 参数指向的 结构的 Size 成员不等于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)
Library Wdf01000.sys (请参阅框架库 Versioning.)
IRQL PASSIVE_LEVEL
DDI 符合性规则 DriverCreate (kmdf)

另请参阅

WDF_DMA_ENABLER_CONFIG

WDF_DMA_ENABLER_CONFIG_INIT

WDF_DMA_SYSTEM_PROFILE_CONFIG_INIT

WdfDmaEnablerCreate