Freigeben über


WDF_DMA_ENABLER_CONFIG_FLAGS-Aufzählung (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 WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION-Flag gilt nur für die folgenden DMA-Profile:


  • WdfDmaProfileScatterGather

  • WdfDmaProfileScatterGather64

  • WdfDmaProfileScatterGatherDuplex

  • WdfDmaProfileScatterGather64Duplex



Wenn WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION nicht festgelegt ist und die WDF_DMA_PROFILE eine der in der vorherigen Liste aufgeführten ist, ist WDF standardmäßig eine derjenigen, die in der vorherigen Liste enthalten sind.
erstellt eine Lookaside-Liste von Punkt-/Sammellisten, die von der Transaktion dieses DMA-Adapters verwendet werden.
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ärtsfortschrittstreiber
darf dieses Kennzeichen nicht festlegen und muss eines der vier zuvor gezeigten Profile verwenden.

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

Das Festlegen WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION kann zu einer verringerten Speicherauslastung führen, insbesondere wenn die maximale Übertragungslänge groß ist. Das Festlegen dieses Flags kann jedoch dazu führen, dass DMA-Vorgänge unter geringen Arbeitsspeicherbedingungen nicht ausgeführt werden. Um den Fortschritt vorwärts zu gewährleisten, wenn WDF_DMA_ENABLER_CONFIG_NO_SGLIST_PREALLOCATION festgelegt ist, verwendet ein Treiber möglicherweise einen separaten DMA-Aktivierungsmodus oder unzustellbarkeitsübertragungen über einen allgemeinen Puffer.
WDF_DMA_ENABLER_CONFIG_REQUIRE_SINGLE_TRANSFER
Wert: 0x00000002
Das WDF_DMA_ENABLER_CONFIG_REQUIRE_SINGLE_TRANSFER-Flag ist ab Version 1.19 von KMDF verfügbar. Dieses Flag erfordert auch DMA Version 3.
Um DMA Version 3 auszuwählen, legen Sie den WdmDmaVersionOverride Mitglied von WDF_DMA_ENABLER_CONFIG auf 3 fest.

Dieses Kennzeichen gilt für alle DMA-Profile. Wenn sie festgelegt ist, fragmentiert WDF KEINE WDFDMATRANSACTION, die mit diesem Enabler erstellt wurde, in mehrere DMA-Übertragungen. Wenn dies nicht möglich ist, schlagen Versuche zum Initialisieren oder Ausführen der Transaktion fehl. Diese Option ist für Geräte vorgesehen, die alle Daten in einem einzigen DMA-Vorgang empfangen müssen.

Treiber haben auch die Möglichkeit, dies auf einer Transaktionsebene mit WdfDmaTransactionSetSingleTransferRequirementanzugeben.

Weitere Informationen finden Sie unter Using Single Transfer DMA.

Bemerkungen

Sie können einen gültigen bitweisen OR der Werte auf dieser Seite für das Flags-Element Member der WDF_DMA_ENABLER_CONFIG Struktur angeben.

Anforderungen

Anforderung Wert
Minimale KMDF-Version 1.11
Kopfzeile wdfdmaenabler.h (include Wdf.h)

Siehe auch

WDF_DMA_ENABLER_CONFIG

WDF_DMA_PROFILE

WdfDmaTransactionSetSingleTransferRequirement