Condividi tramite


struttura WDF_DMA_ENABLER_CONFIG (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;

Membri

Size

Dimensione, in byte, di questa struttura.

Profile

Valore WDF_DMA_PROFILE-typed, che identifica il tipo di operazione DMA master bus associata all'oggetto enabler 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 le 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 delle mappe, MaximumLength deve essere inferiore a 65.536.

EvtDmaEnablerFill

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

EvtDmaEnablerFlush

Puntatore alla funzione di callback degli eventi EvtDmaEnablerFlush del driver o NULL.

EvtDmaEnablerDisable

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

EvtDmaEnablerEnable

Puntatore alla funzione di callback degli eventi EvtDmaEnablerEnable del driver oppure NULL.

EvtDmaEnablerSelfManagedIoStart

Puntatore alla funzione di callback dell'evento EvtDmaEnablerSelfManagedIoStart del driver oppure NULL.

EvtDmaEnablerSelfManagedIoStop

Puntatore alla funzione di callback degli eventi del driver EvtDmaEnablerSelfManagedIoStop evento oppure NULL.

AddressWidthOverride

Impostare su zero per accettare la larghezza dell'indirizzo specificata in Profilo. Un driver può eseguire l'override della larghezza dell'indirizzo di 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 flag è disponibile nella versione 1.11 e nelle versioni successive di KMDF.

Osservazioni:

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 fino 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 di 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 minima di KMDF 1.0
intestazione wdfdmaenabler.h (include Wdf.h)

Vedere anche

EvtDmaEnablerDisable

EvtDmaEnablerEnable

EvtDmaEnablerFill

EvtDmaEnablerFlush

EvtDmaEnablerSelfManagedIoStart

EvtDmaEnablerSelfManagedIoStop

WDF_DMA_ENABLER_CONFIG_INIT

WDF_DMA_PROFILE

WdfDmaEnablerCreare

WdfDmaTransactionSetMaximumLength