Función WdfDmaEnablerConfigureSystemProfile (wdfdmaenabler.h)

[Solo se aplica a KMDF]

El método WdfDmaEnablerConfigureSystemProfile configura la configuración específica del hardware para un habilitador DMA en modo sistema y completa la inicialización del recurso.

Sintaxis

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

Parámetros

[in] DmaEnabler

Identificador de un objeto enabler de DMA.

[in] ProfileConfig

Puntero a una estructura de WDF_DMA_SYSTEM_PROFILE_CONFIG . Los controladores deben inicializar esta estructura llamando a WDF_DMA_SYSTEM_PROFILE_CONFIG_INIT.

[in] ConfigDirection

Valor de tipo WDF_DMA_DIRECTION que especifica la dirección de la operación de transferencia de DMA. Si el valor WDF_DMA_PROFILE de este habilitador no es WdfDmaProfileSystemDuplex, el marco omite este parámetro.

Valor devuelto

WdfDmaEnablerConfigureSystemProfile devuelve STATUS_SUCCESS si la operación se realiza correctamente. De lo contrario, el método podría devolver uno de los valores siguientes.

Código devuelto Descripción
STATUS_NOT_SUPPORTED
El controlador solicitó una configuración DMA que no se admite en el sistema operativo actual.
STATUS_INVALID_PARAMETER
El controlador proporcionó NULL en el parámetro ProfileConfig .
STATUS_INFO_LENGTH_MISMATCH
El miembro Size de la estructura a la que apunta el parámetro ProfileConfig no es igual al tamaño de la estructura WDF_DMA_SYSTEM_PROFILE_CONFIG .
STATUS_INVALID_PARAMETER
El miembro DmaDescriptor de la estructura a la que apunta el parámetro ProfileConfig es NULL o el parámetro ConfigDirection contiene un valor no válido.

Comentarios

Antes de llamar a WdfDmaEnablerConfigureSystemProfile, el controlador debe llamar a WdfDmaEnablerCreate para crear el objeto enabler.

Normalmente, un controlador llama a WdfDmaEnablerConfigureSystemProfile desde su función de devolución de llamada EvtDevicePrepareHardware .

Si el controlador especificó un perfil dúplex al llamar a WdfDmaEnablerCreate, el valor del parámetro ConfigDirection del método WdfDmaEnablerCreate debe ser WdfDmaDirectionReadFromDevice para obtener la estructura DMA_ADAPTER para las operaciones de lectura y WdfDmaDirectionWriteToDevice para obtener la estructura de DMA_ADAPTER para las operaciones de escritura.

Si el habilitador DMA es un habilitador dúplex, el controlador debe inicializar una dirección determinada para poder usarla.

Si el controlador no especificó un perfil dúplex, el controlador puede especificar WdfDmaDirectionReadFromDevice o WdfDmaDirectionWriteToDevice.

Ejemplos

El siguiente ejemplo de código procede de la función de devolución de llamada EvtDevicePrepareHardware del controlador. En este ejemplo se inicializa una estructura de WDF_DMA_SYSTEM_PROFILE_CONFIG y se llama a 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);  

Requisitos

Requisito Value
Cliente mínimo compatible Windows 8
Plataforma de destino Universal
Versión mínima de KMDF 1.11
Encabezado wdfdmaenabler.h (include Wdf.h)
Library Wdf01000.sys (consulte Control de versiones de la biblioteca de marcos).
IRQL PASSIVE_LEVEL
Reglas de cumplimiento de DDI DriverCreate(kmdf)

Consulte también

WDF_DMA_ENABLER_CONFIG

WDF_DMA_ENABLER_CONFIG_INIT

WDF_DMA_SYSTEM_PROFILE_CONFIG_INIT

WdfDmaEnablerCreate