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
EvtDmaEnablerSelfManagedIoStart