Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
[Solo se aplica a KMDF]
El método WdfDmaEnablerConfigureSystemProfile configura los valores específicos del hardware para un habilitador DMA en modo del sistema y completa la inicialización de recursos.
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 DMA.
[in] ProfileConfig
Puntero a una estructura 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_DIRECTIONque especifica la dirección de la operación de transferencia DMA. Si el valor de WDF_DMA_PROFILE para 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 de retorno | 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 size miembro 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. |
Observaciones
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 cuando se llamó a WdfDmaEnablerCreate, el WdfDmaEnablerConfigureSystemProfile método ConfigDirection del parámetro value debe ser WdfDmaDirectionReadFromDevice para obtener la estructura de 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 de un 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 | Valor |
|---|---|
| cliente mínimo admitido | Windows 8 |
| de la plataforma de destino de | Universal |
| versión mínima de KMDF | 1.11 |
| encabezado | wdfdmaenabler.h (incluya Wdf.h) |
| Biblioteca | Wdf01000.sys (consulte Control de versiones de la biblioteca de marcos). |
| irQL | PASSIVE_LEVEL |
| reglas de cumplimiento de DDI | DriverCreate(kmdf) |