Freigeben über


WDF_DMA_ENABLER_CONFIG_FLAGS-Enumeration (wdfdmaenabler.h)

[Gilt nur für KMDF]

Der WDF_DMA_ENABLER_CONFIG_FLAGS-Enumerationstyp definiert Flags, die in der WDF_DMA_ENABLER_CONFIG-Struktur eines Treibers verwendet werden.

Syntax

typedef enum _WDF_DMA_ENABLER_CONFIG_FLAGS {
  WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION = 0x00000001,
  WDF_DMA_ENABLER_CONFIG_REQUIRE_SINGLE_TRANSFER = 0x00000002
} WDF_DMA_ENABLER_CONFIG_FLAGS;

Konstanten

 
WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION
Wert: 0x00000001
Das flag WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION gilt nur für die folgenden DMA-Profile:


  • WdfDmaProfileScatterGather

  • WdfDmaProfileScatterGather64

  • WdfDmaProfileScatterGatherDuplex

  • WdfDmaProfileScatterGather64Duplex



Wenn WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION nicht festgelegt ist und der WDF_DMA_PROFILE eine der in der vorherigen Liste aufgeführten ist, ist WDF standardmäßig nicht festgelegt.
erstellt eine Lookaside-Liste von Punkt-/Gather-Listen, die von der Transaktion dieses DMA-Adapters verwendet wird.
-Objekte. Die Listeneinträge werden initialisiert, um das angegebene Maximum zuzulassen.
Übertragungslänge. Wenn die Transaktion ausgeführt wird, ruft WDF die BuildScatterGatherList-Eintragsfunktion auf. Vorwärts-Fortschrittstreiber
darf dieses Flag nicht festlegen und muss eines der vier zuvor gezeigten Profile verwenden.

Wenn WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION festgelegt ist und der WDF_DMA_PROFILE einer der in der vorherigen Liste aufgeführten ist, erstellt WDF keine Suchliste. Wenn die Transaktion ausgeführt wird, ruft WDF GetScatterGatherList auf.

Das Festlegen WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION kann zu einer geringeren Speicherauslastung führen, insbesondere wenn die maximale Übertragungslänge groß ist. Das Festlegen dieses Flags kann jedoch dazu führen, dass DMA-Vorgänge bei geringem Arbeitsspeicher nicht ausgeführt werden. Um den Vorwärtsfortschritt zu gewährleisten, wenn WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION festgelegt ist, kann ein Treiber einen separaten DMA-Enabler verwenden oder Übertragungen über einen gemeinsamen Puffer abspringen.
WDF_DMA_ENABLER_CONFIG_REQUIRE_SINGLE_TRANSFER
Wert: 0x00000002
Das flag WDF_DMA_ENABLER_CONFIG_REQUIRE_SINGLE_TRANSFER ist ab Version 1.19 von KMDF verfügbar. Dieses Flag erfordert auch DMA-Version 3.
Um DMA-Version 3 auszuwählen, legen Sie das WdmDmaVersionOverride-Element von WDF_DMA_ENABLER_CONFIG auf 3 fest.

Dieses Flag gilt für alle DMA-Profile. Wenn sie festgelegt ist, fragmentiert WDFDMATRANSACTION, die mit diesem Enabler erstellt wurde, nicht in mehrere DMA-Übertragungen. Wenn dies nicht möglich ist, schlagen Versuche, die Transaktion zu initialisieren oder auszuführen, fehl. Diese Option ist für Geräte vorgesehen, die alle Daten in einem einzelnen DMA-Vorgang empfangen müssen.

Treiber haben auch die Möglichkeit, dies auf Transaktionsebene mit WdfDmaTransactionSetSingleTransferRequirement anzugeben.

Weitere Informationen finden Sie unter Verwenden von Single Transfer DMA.

Hinweise

Sie können ein gültiges bitweises OR der Werte auf dieser Seite für den Flags-Member der WDF_DMA_ENABLER_CONFIG-Struktur angeben.

Anforderungen

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

Weitere Informationen

WDF_DMA_ENABLER_CONFIG

WDF_DMA_PROFILE

WdfDmaTransactionSetSingleTransferRequirement