Freigeben über


WDF_DMA_ENABLER_CONFIG-Struktur (wdfdmaenabler.h)

[Gilt nur für KMDF]

Die WDF_DMA_ENABLER_CONFIG-Struktur liefert Merkmale für ein DMA-Enablerobjekt.

Syntax

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;

Member

Size

Die Größe (in Bytes) dieser Struktur.

Profile

Ein WDF_DMA_PROFILE typisierter Wert, der den Typ des Bus-master DMA-Vorgangs angibt, der dem DMA-Aktivierungsobjekt zugeordnet wird.

MaximumLength

Die maximale Standardgröße in Bytes, die das Gerät in einer einzelnen DMA-Übertragung verarbeiten kann. (Treiber können diesen Standardwert für einzelne DMA-Transaktionen überschreiben, indem sie WdfDmaTransactionSetMaximumLength aufrufen.) Wenn Ihr Treiber unter Versionen von Microsoft Windows-Betriebssystemen ausgeführt werden muss, die maximal 16 Kartenregister unterstützen, muss MaximumLength kleiner als 65.536 sein.

EvtDmaEnablerFill

Ein Zeiger auf die EvtDmaEnablerFill-Ereignisrückruffunktion des Treibers ( NULL).

EvtDmaEnablerFlush

Ein Zeiger auf die EvtDmaEnablerFlush-Ereignisrückruffunktion des Treibers oder NULL.

EvtDmaEnablerDisable

Ein Zeiger auf die EvtDmaEnablerDisabler-Ereignisrückruffunktion des Treibers oder NULL.

EvtDmaEnablerEnable

Ein Zeiger auf die EvtDmaEnablerEnablerEnable-Ereignisrückruffunktion des Treibers oder NULL.

EvtDmaEnablerSelfManagedIoStart

Ein Zeiger auf die EvtDmaEnablerSelfManagedIoStart-Ereignisrückruffunktion des Treibers oder NULL.

EvtDmaEnablerSelfManagedIoStop

Ein Zeiger auf die EvtDmaEnablerSelfManagedIoStop-Ereignisrückruffunktion des Treibers oder NULL.

AddressWidthOverride

Legen Sie auf Null fest, um die im Profil angegebene Adressbreite zu akzeptieren. Ein Treiber kann die Profiladressbreite überschreiben, indem er diesen Member auf einen Wert zwischen 24 und 63 festlegt. Wenn Ihr Treiber ein DMA-Profil im Systemmodus angibt, muss AddressWidthOverride null sein. Wenn Ihr Treiber ein 32-Bit-DMA-Profil angibt, darf AddressWidthOverride nicht größer als 32 sein. Das AddressWidthOverride-Member ist in Version 1.11 und höheren Versionen von KMDF verfügbar. Weitere Informationen finden Sie unter Hinweise.

WdmDmaVersionOverride

Legen Sie auf Null fest, um die DMA-Standardversion zu akzeptieren. Um DMA Version 3 anzufordern, legen Sie auf 3 fest. Das WdmDmaVersionOverride-Element ist in Version 1.11 und in höheren Versionen von KMDF verfügbar. DMA Version 3 ist ab Windows 8 verfügbar.

Flags

Ein bitweiser OR mit einem oder mehreren Werten aus der WDF_DMA_ENABLER_CONFIG_FLAGS-Enumeration . Das Flags-Element ist in Version 1.11 und in höheren Versionen von KMDF verfügbar.

Hinweise

Die WDF_DMA_ENABLER_CONFIG-Struktur wird als Eingabeparameter für die WdfDmaEnablerCreate-Methode verwendet.

Treiber müssen WDF_DMA_ENABLER_CONFIG_INIT aufrufen, um die WDF_DMA_ENABLER_CONFIG-Struktur zu initialisieren.

Wenn der Treiber in Windows 8 und höher einen ungleichen Wert für AddressWidthOverride bereitstellt, fordert das Framework DMA Version 3 an und übergibt den AddressWidthOverride-Wert an die HAL.

Wenn der Treiber unter Windows 7 und Windows Vista einen ungleichen Wert für AddressWidthOverride bereitstellt, verwendet das Framework entweder 32-Bit- oder 24-Bit-DMA. Wenn der Treiber beispielsweise ein 64-Bit-Profil angibt und eine AddressWidthOverride von 32 bereitstellt, verwendet das Framework 32-Bit-DMA. Wenn der Treiber ein 32-Bit-Profil angibt und eine AddressWidthOverride von 24 bereitstellt, verwendet das Framework 24-Bit-DMA.

Anforderungen

Anforderung Wert
KMDF-Mindestversion 1.0
Kopfzeile wdfdmaenabler.h (einschließen von Wdf.h)

Weitere Informationen

EvtDmaEnablerDisabler

EvtDmaEnablerEnablerEnable

EvtDmaEnablerFill

EvtDmaEnablerFlush

EvtDmaEnablerSelfManagedIoStart

EvtDmaEnablerSelfManagedIoStop

WDF_DMA_ENABLER_CONFIG_INIT

WDF_DMA_PROFILE

WdfDmaEnablerCreate

WdfDmaTransactionSetMaximumLength