Compartir a través de


estructura WDF_DMA_ENABLER_CONFIG (wdfdmaenabler.h)

[Solo se aplica a KMDF]

La estructura WDF_DMA_ENABLER_CONFIG proporciona características para un objeto de habilitador DMA.

Sintaxis

typedef struct _WDF_DMA_ENABLER_CONFIG {
  ULONG                                    Size;
  WDF_DMA_PROFILE                          Profile;
  size_t                                   MaximumLength;
  PFN_WDF_DMA_ENABLER_FILL                 EvtDmaEnablerFill;
  PFN_WDF_DMA_ENABLER_FLUSH                EvtDmaEnablerFlush;
  PFN_WDF_DMA_ENABLER_DISABLE              EvtDmaEnablerDisable;
  PFN_WDF_DMA_ENABLER_ENABLE               EvtDmaEnablerEnable;
  PFN_WDF_DMA_ENABLER_SELFMANAGED_IO_START EvtDmaEnablerSelfManagedIoStart;
  PFN_WDF_DMA_ENABLER_SELFMANAGED_IO_STOP  EvtDmaEnablerSelfManagedIoStop;
  ULONG                                    AddressWidthOverride;
  ULONG                                    WdmDmaVersionOverride;
  ULONG                                    Flags;
} WDF_DMA_ENABLER_CONFIG, *PWDF_DMA_ENABLER_CONFIG;

Miembros

Size

Tamaño, en bytes, de esta estructura.

Profile

Valor WDF_DMA_PROFILE con tipo, que identifica el tipo de operación DMA de bus-master que se asociará al objeto de habilitador DMA.

MaximumLength

Tamaño máximo predeterminado, en bytes, que el dispositivo puede controlar en una única transferencia DMA. (Los controladores pueden invalidar este valor predeterminado para transacciones DMA individuales llamando a WdfDmaTransactionSetMaximumLength). Si el controlador debe ejecutarse en versiones de sistemas operativos Microsoft Windows que admitan un máximo de 16 registros de asignación, MaximumLength debe ser inferior a 65 536.

EvtDmaEnablerFill

Puntero a la función de devolución de llamada de eventos EvtDmaEnablerFill del controlador o NULL.

EvtDmaEnablerFlush

Puntero a la función de devolución de llamada de eventos EvtDmaEnablerFlush del controlador o NULL.

EvtDmaEnablerDisable

Puntero a la función de devolución de llamada de eventos EvtDmaEnablerDisable del controlador o NULL.

EvtDmaEnablerEnable

Puntero a la función de devolución de llamada de eventos EvtDmaEnablerEnable del controlador o NULL.

EvtDmaEnablerSelfManagedIoStart

Puntero a la función de devolución de llamada de eventos EvtDmaEnablerSelfManagedIoStart del controlador o NULL.

EvtDmaEnablerSelfManagedIoStop

Puntero a la función de devolución de llamada de eventos EvtDmaEnablerSelfManagedIoStop del controlador o NULL.

AddressWidthOverride

Establezca en cero para aceptar el ancho de dirección especificado en Perfil. Un controlador puede invalidar el ancho de dirección del perfil estableciendo este miembro en un valor entre 24 y 63. Si el controlador especifica un perfil DMA en modo del sistema, AddressWidthOverride debe ser cero. Si el controlador especifica un perfil DMA de 32 bits, AddressWidthOverride no puede ser mayor que 32. El miembro AddressWidthOverride está disponible en la versión 1.11 y versiones posteriores de KMDF. Vea más información en Comentarios.

WdmDmaVersionOverride

Establezca en cero para aceptar la versión predeterminada de DMA. Para solicitar la versión 3 de DMA, establezca en 3. El miembro WdmDmaVersionOverride está disponible en la versión 1.11 y en versiones posteriores de KMDF. La versión 3 de DMA está disponible a partir de Windows 8.

Flags

OR bit a bit de uno o varios valores de la enumeración WDF_DMA_ENABLER_CONFIG_FLAGS . El miembro Flags está disponible en la versión 1.11 y en versiones posteriores de KMDF.

Comentarios

La estructura WDF_DMA_ENABLER_CONFIG se usa como parámetro de entrada para el método WdfDmaEnablerCreate .

Los controladores deben llamar a WDF_DMA_ENABLER_CONFIG_INIT para inicializar la estructura de WDF_DMA_ENABLER_CONFIG .

En Windows 8 y versiones posteriores, cuando el controlador proporciona un valor distinto de cero para AddressWidthOverride, el marco solicita la versión 3 de DMA y pasa el valor AddressWidthOverride a HAL.

En Windows 7 y Windows Vista, cuando el controlador proporciona un valor distinto de cero para AddressWidthOverride, el marco usa DMA de 32 o 24 bits. Por ejemplo, si el controlador especifica un perfil de 64 bits y proporciona un AddressWidthOverride de 32, el marco usa DMA de 32 bits. Si el controlador especifica un perfil de 32 bits y proporciona addressWidthOverride de 24, el marco usa DMA de 24 bits.

Requisitos

Requisito Value
Versión mínima de KMDF 1.0
Encabezado wdfdmaenabler.h (incluya Wdf.h)

Consulte también

EvtDmaEnablerDisable

EvtDmaEnablerEnable

EvtDmaEnablerFill

EvtDmaEnablerFlush

EvtDmaEnablerSelfManagedIoStart

EvtDmaEnablerSelfManagedIoStop

WDF_DMA_ENABLER_CONFIG_INIT

WDF_DMA_PROFILE

WdfDmaEnablerCreate

WdfDmaTransactionSetMaximumLength