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 |
---|---|
|
El controlador solicitó una configuración DMA que no se admite en el sistema operativo actual. |
|
El controlador proporcionó NULL en el parámetro ProfileConfig . |
|
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 . |
|
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
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de