Condividi tramite


WDF_DMA_ENABLER_CONFIG struttura (wdfdmaenabler.h)

[Si applica solo a KMDF]

La struttura WDF_DMA_ENABLER_CONFIG fornisce caratteristiche per un oggetto enabler DMA.

Sintassi

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;

Members

Size

Dimensione, in byte, della struttura.

Profile

Valore WDF_DMA_PROFILE tipizzato, che identifica il tipo di operazione DMA master del bus associata all'oggetto abilitante DMA DMA.

MaximumLength

Dimensioni massime predefinite, in byte, che il dispositivo può gestire in un singolo trasferimento DMA. I driver possono eseguire l'override di questo valore predefinito per singole transazioni DMA chiamando WdfDmaTransactionSetMaximumLength. Se il driver deve essere eseguito nelle versioni dei sistemi operativi Microsoft Windows che supportano un massimo di 16 registri mappa, MaximumLength deve essere inferiore a 65.536.

EvtDmaEnablerFill

Puntatore alla funzione di callback dell'evento EvtDmaEnablerFill del driver o NULL.

EvtDmaEnablerFlush

Puntatore alla funzione di callback dell'evento EvtDmaEnablerFlush del driver o NULL.

EvtDmaEnablerDisable

Puntatore alla funzione di callback dell'evento EvtDmaEnablerDisable del driver o NULL.

EvtDmaEnablerEnable

Puntatore alla funzione di callback dell'evento EvtDmaEnablerEnabler o NULL del driver.

EvtDmaEnablerSelfManagedIoStart

Puntatore alla funzione di callback dell'evento EvtDmaEnablerSelfManagedIoStartdel driver.

EvtDmaEnablerSelfManagedIoStop

Puntatore alla funzione di callback dell'evento EvtDmaEnablerSelfManagedIoStopdel driver.

AddressWidthOverride

Impostare su zero per accettare la larghezza dell'indirizzo specificata in Profilo. Un driver può eseguire l'override della larghezza dell'indirizzo del profilo impostando questo membro su un valore compreso tra 24 e 63. Se il driver specifica un profilo DMA in modalità sistema, AddressWidthOverride deve essere zero. Se il driver specifica un profilo DMA a 32 bit, AddressWidthOverride non può essere maggiore di 32. Il membro AddressWidthOverride è disponibile nella versione 1.11 e versioni successive di KMDF. Per altre informazioni, vedere Osservazioni.

WdmDmaVersionOverride

Impostare su zero per accettare la versione DMA predefinita. Per richiedere DMA versione 3, impostare su 3. Il membro WdmDmaVersionOverride è disponibile nella versione 1.11 e nelle versioni successive di KMDF. DMA versione 3 è disponibile a partire da Windows 8.

Flags

Or bit per bit di uno o più valori dell'enumerazione WDF_DMA_ENABLER_CONFIG_FLAGS . Il membro Flags è disponibile nella versione 1.11 e nelle versioni successive di KMDF.

Commenti

La struttura WDF_DMA_ENABLER_CONFIG viene usata come parametro di input per il metodo WdfDmaEnablerCreate .

I driver devono chiamare WDF_DMA_ENABLER_CONFIG_INIT per inizializzare la struttura WDF_DMA_ENABLER_CONFIG .

In Windows 8 e versioni successive, quando il driver fornisce un valore diverso da zero per AddressWidthOverride, il framework richiede DMA versione 3 e passa il valore AddressWidthOverride a HAL.

In Windows 7 e Windows Vista, quando il driver fornisce un valore diverso da zero per AddressWidthOverride, il framework usa DMA a 32 bit o a 24 bit. Ad esempio, se il driver specifica un profilo a 64 bit e fornisce un AddressWidthOverride pari a 32, il framework usa DMA a 32 bit. Se il driver specifica un profilo a 32 bit e fornisce un AddressWidthOverride di 24, il framework usa DMA a 24 bit.

Requisiti

Requisito Valore
Versione KMDF minima 1.0
Intestazione wdfdmaenabler.h (include Wdf.h)

Vedi anche

EvtDmaEnablerDisable

EvtDmaEnablerEnable

EvtDmaEnablerFill

EvtDmaEnablerFlush

EvtDmaEnablerSelfManagedIoStart

EvtDmaEnablerSelfManagedIoStop

WDF_DMA_ENABLER_CONFIG_INIT

WDF_DMA_PROFILE

WdfDmaEnablerCreate

WdfDmaTransactionSetMaximumLength